!(function (t, e) {
    if ('object' == typeof exports && 'object' == typeof module) module.exports = e();
    else if ('function' == typeof define && define.amd) define([], e);
    else {
        var r = e();

        for (var n in r) ('object' == typeof exports ? exports : t)[n] = r[n];
    }
})(window, function () {
    return (function (t) {
        var e = {};

        function r(n) {
            if (e[n]) return e[n].exports;
            var o = (e[n] = {
                i: n,
                l: !1,
                exports: {}
            });
            return t[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports;
        }

        return (
            (r.m = t),
            (r.c = e),
            (r.d = function (t, e, n) {
                r.o(t, e) ||
                    Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: n
                    });
            }),
            (r.r = function (t) {
                'undefined' != typeof Symbol &&
                    Symbol.toStringTag &&
                    Object.defineProperty(t, Symbol.toStringTag, {
                        value: 'Module'
                    }),
                    Object.defineProperty(t, '__esModule', {
                        value: !0
                    });
            }),
            (r.t = function (t, e) {
                if ((1 & e && (t = r(t)), 8 & e)) return t;
                if (4 & e && 'object' == typeof t && t && t.__esModule) return t;
                var n = Object.create(null);
                if (
                    (r.r(n),
                    Object.defineProperty(n, 'default', {
                        enumerable: !0,
                        value: t
                    }),
                    2 & e && 'string' != typeof t)
                )
                    for (var o in t)
                        r.d(
                            n,
                            o,
                            function (e) {
                                return t[e];
                            }.bind(null, o)
                        );
                return n;
            }),
            (r.n = function (t) {
                var e =
                    t && t.__esModule
                        ? function () {
                              return t.default;
                          }
                        : function () {
                              return t;
                          };
                return r.d(e, 'a', e), e;
            }),
            (r.o = function (t, e) {
                return Object.prototype.hasOwnProperty.call(t, e);
            }),
            (r.p = ''),
            r((r.s = 24))
        );
    })([
        function (t, e) {
            t.exports = function () {
                return function () {};
            };
        },
        function (t, e) {
            var r;

            r = (function () {
                return this;
            })();

            try {
                r = r || Function('return this')() || (0, eval)('this');
            } catch (t) {
                'object' == typeof window && (r = window);
            }

            t.exports = r;
        },
        function (t, e) {
            var r = {}.toString;

            t.exports =
                Array.isArray ||
                function (t) {
                    return '[object Array]' == r.call(t);
                };
        },
        function (t, e, r) {
            function n(t) {
                if (t)
                    return (function (t) {
                        for (var e in n.prototype) t[e] = n.prototype[e];

                        return t;
                    })(t);
            }

            (t.exports = n),
                (n.prototype.on = n.prototype.addEventListener =
                    function (t, e) {
                        return (this._callbacks = this._callbacks || {}), (this._callbacks['$' + t] = this._callbacks['$' + t] || []).push(e), this;
                    }),
                (n.prototype.once = function (t, e) {
                    function r() {
                        this.off(t, r), e.apply(this, arguments);
                    }

                    return (r.fn = e), this.on(t, r), this;
                }),
                (n.prototype.off =
                    n.prototype.removeListener =
                    n.prototype.removeAllListeners =
                    n.prototype.removeEventListener =
                        function (t, e) {
                            if (((this._callbacks = this._callbacks || {}), 0 == arguments.length)) return (this._callbacks = {}), this;
                            var r,
                                n = this._callbacks['$' + t];
                            if (!n) return this;
                            if (1 == arguments.length) return delete this._callbacks['$' + t], this;

                            for (var o = 0; o < n.length; o++)
                                if ((r = n[o]) === e || r.fn === e) {
                                    n.splice(o, 1);
                                    break;
                                }

                            return this;
                        }),
                (n.prototype.emit = function (t) {
                    this._callbacks = this._callbacks || {};
                    var e = [].slice.call(arguments, 1),
                        r = this._callbacks['$' + t];
                    if (r) for (var n = 0, o = (r = r.slice(0)).length; n < o; ++n) r[n].apply(this, e);
                    return this;
                }),
                (n.prototype.listeners = function (t) {
                    return (this._callbacks = this._callbacks || {}), this._callbacks['$' + t] || [];
                }),
                (n.prototype.hasListeners = function (t) {
                    return !!this.listeners(t).length;
                });
        },
        function (t, e, r) {
            var n = r(0)('socket.io-parser'),
                o = r(3),
                i = r(20),
                s = r(2),
                a = r(9);

            function u() {}

            (e.protocol = 4),
                (e.types = ['CONNECT', 'DISCONNECT', 'EVENT', 'ACK', 'ERROR', 'BINARY_EVENT', 'BINARY_ACK']),
                (e.CONNECT = 0),
                (e.DISCONNECT = 1),
                (e.EVENT = 2),
                (e.ACK = 3),
                (e.ERROR = 4),
                (e.BINARY_EVENT = 5),
                (e.BINARY_ACK = 6),
                (e.Encoder = u),
                (e.Decoder = h);
            var c = e.ERROR + '"encode error"';

            function f(t) {
                var r = '' + t.type;

                if (
                    ((e.BINARY_EVENT !== t.type && e.BINARY_ACK !== t.type) || (r += t.attachments + '-'),
                    t.nsp && '/' !== t.nsp && (r += t.nsp + ','),
                    null != t.id && (r += t.id),
                    null != t.data)
                ) {
                    var o = (function (t) {
                        try {
                            return JSON.stringify(t);
                        } catch (t) {
                            return !1;
                        }
                    })(t.data);

                    if (!1 === o) return c;
                    r += o;
                }

                return n('encoded %j as %s', t, r), r;
            }

            function h() {
                this.reconstructor = null;
            }

            function p(t) {
                (this.reconPack = t), (this.buffers = []);
            }

            function l(t) {
                return {
                    type: e.ERROR,
                    data: 'parser error: ' + t
                };
            }

            (u.prototype.encode = function (t, r) {
                (n('encoding packet %j', t), e.BINARY_EVENT === t.type || e.BINARY_ACK === t.type)
                    ? (function (t, e) {
                          i.removeBlobs(t, function (t) {
                              var r = i.deconstructPacket(t),
                                  n = f(r.packet),
                                  o = r.buffers;
                              o.unshift(n), e(o);
                          });
                      })(t, r)
                    : r([f(t)]);
            }),
                o(h.prototype),
                (h.prototype.add = function (t) {
                    var r;
                    if ('string' == typeof t)
                        (r = (function (t) {
                            var r = 0,
                                o = {
                                    type: Number(t.charAt(0))
                                };
                            if (null == e.types[o.type]) return l('unknown packet type ' + o.type);

                            if (e.BINARY_EVENT === o.type || e.BINARY_ACK === o.type) {
                                for (var i = ''; '-' !== t.charAt(++r) && ((i += t.charAt(r)), r != t.length); );

                                if (i != Number(i) || '-' !== t.charAt(r)) throw new Error('Illegal attachments');
                                o.attachments = Number(i);
                            }

                            if ('/' === t.charAt(r + 1))
                                for (o.nsp = ''; ++r; ) {
                                    var a = t.charAt(r);
                                    if (',' === a) break;
                                    if (((o.nsp += a), r === t.length)) break;
                                }
                            else o.nsp = '/';
                            var u = t.charAt(r + 1);

                            if ('' !== u && Number(u) == u) {
                                for (o.id = ''; ++r; ) {
                                    var a = t.charAt(r);

                                    if (null == a || Number(a) != a) {
                                        --r;
                                        break;
                                    }

                                    if (((o.id += t.charAt(r)), r === t.length)) break;
                                }

                                o.id = Number(o.id);
                            }

                            if (t.charAt(++r)) {
                                var c = (function (t) {
                                        try {
                                            return JSON.parse(t);
                                        } catch (t) {
                                            return !1;
                                        }
                                    })(t.substr(r)),
                                    f = !1 !== c && (o.type === e.ERROR || s(c));

                                if (!f) return l('invalid payload');
                                o.data = c;
                            }

                            return n('decoded %s as %j', t, o), o;
                        })(t)),
                            e.BINARY_EVENT === r.type || e.BINARY_ACK === r.type
                                ? ((this.reconstructor = new p(r)), 0 === this.reconstructor.reconPack.attachments && this.emit('decoded', r))
                                : this.emit('decoded', r);
                    else {
                        if (!a(t) && !t.base64) throw new Error('Unknown type: ' + t);
                        if (!this.reconstructor) throw new Error('got binary data when not reconstructing a packet');
                        (r = this.reconstructor.takeBinaryData(t)) && ((this.reconstructor = null), this.emit('decoded', r));
                    }
                }),
                (h.prototype.destroy = function () {
                    this.reconstructor && this.reconstructor.finishedReconstruction();
                }),
                (p.prototype.takeBinaryData = function (t) {
                    if ((this.buffers.push(t), this.buffers.length === this.reconPack.attachments)) {
                        var e = i.reconstructPacket(this.reconPack, this.buffers);
                        return this.finishedReconstruction(), e;
                    }

                    return null;
                }),
                (p.prototype.finishedReconstruction = function () {
                    (this.reconPack = null), (this.buffers = []);
                });
        },
        function (t, e) {
            var r = [].slice;

            t.exports = function (t, e) {
                if (('string' == typeof e && (e = t[e]), 'function' != typeof e)) throw new Error('bind() requires a function');
                var n = r.call(arguments, 2);
                return function () {
                    return e.apply(t, n.concat(r.call(arguments)));
                };
            };
        },
        function (t, e) {
            t.exports = function (t, e, r) {
                return (
                    t.on(e, r),
                    {
                        destroy: function () {
                            t.removeListener(e, r);
                        }
                    }
                );
            };
        },
        function (t, e, r) {
            var n = r(4),
                o = r(3),
                i = r(18),
                s = r(6),
                a = r(5),
                u = r(0)('socket.io-client:socket'),
                c = r(17),
                f = r(16);
            t.exports = l;
            var h = {
                    connect: 1,
                    connect_error: 1,
                    connect_timeout: 1,
                    connecting: 1,
                    disconnect: 1,
                    error: 1,
                    reconnect: 1,
                    reconnect_attempt: 1,
                    reconnect_failed: 1,
                    reconnect_error: 1,
                    reconnecting: 1,
                    ping: 1,
                    pong: 1
                },
                p = o.prototype.emit;

            function l(t, e, r) {
                (this.io = t),
                    (this.nsp = e),
                    (this.json = this),
                    (this.ids = 0),
                    (this.acks = {}),
                    (this.receiveBuffer = []),
                    (this.sendBuffer = []),
                    (this.connected = !1),
                    (this.disconnected = !0),
                    (this.flags = {}),
                    r && r.query && (this.query = r.query),
                    this.io.autoConnect && this.open();
            }

            o(l.prototype),
                (l.prototype.subEvents = function () {
                    if (!this.subs) {
                        var t = this.io;
                        this.subs = [s(t, 'open', a(this, 'onopen')), s(t, 'packet', a(this, 'onpacket')), s(t, 'close', a(this, 'onclose'))];
                    }
                }),
                (l.prototype.open = l.prototype.connect =
                    function () {
                        return this.connected ? this : (this.subEvents(), this.io.open(), 'open' === this.io.readyState && this.onopen(), this.emit('connecting'), this);
                    }),
                (l.prototype.send = function () {
                    var t = i(arguments);
                    return t.unshift('message'), this.emit.apply(this, t), this;
                }),
                (l.prototype.emit = function (t) {
                    if (h.hasOwnProperty(t)) return p.apply(this, arguments), this;
                    var e = i(arguments),
                        r = {
                            type: (void 0 !== this.flags.binary ? this.flags.binary : f(e)) ? n.BINARY_EVENT : n.EVENT,
                            data: e,
                            options: {}
                        };
                    return (
                        (r.options.compress = !this.flags || !1 !== this.flags.compress),
                        'function' == typeof e[e.length - 1] && (u('emitting packet with ack id %d', this.ids), (this.acks[this.ids] = e.pop()), (r.id = this.ids++)),
                        this.connected ? this.packet(r) : this.sendBuffer.push(r),
                        (this.flags = {}),
                        this
                    );
                }),
                (l.prototype.packet = function (t) {
                    (t.nsp = this.nsp), this.io.packet(t);
                }),
                (l.prototype.onopen = function () {
                    if ((u('transport is open - connecting'), '/' !== this.nsp))
                        if (this.query) {
                            var t = 'object' == typeof this.query ? c.encode(this.query) : this.query;
                            u('sending connect packet with query %s', t),
                                this.packet({
                                    type: n.CONNECT,
                                    query: t
                                });
                        } else
                            this.packet({
                                type: n.CONNECT
                            });
                }),
                (l.prototype.onclose = function (t) {
                    u('close (%s)', t), (this.connected = !1), (this.disconnected = !0), delete this.id, this.emit('disconnect', t);
                }),
                (l.prototype.onpacket = function (t) {
                    var e = t.nsp === this.nsp,
                        r = t.type === n.ERROR && '/' === t.nsp;
                    if (e || r)
                        switch (t.type) {
                            case n.CONNECT:
                                this.onconnect();
                                break;

                            case n.EVENT:
                            case n.BINARY_EVENT:
                                this.onevent(t);
                                break;

                            case n.ACK:
                            case n.BINARY_ACK:
                                this.onack(t);
                                break;

                            case n.DISCONNECT:
                                this.ondisconnect();
                                break;

                            case n.ERROR:
                                this.emit('error', t.data);
                        }
                }),
                (l.prototype.onevent = function (t) {
                    var e = t.data || [];
                    u('emitting event %j', e),
                        null != t.id && (u('attaching ack callback to event'), e.push(this.ack(t.id))),
                        this.connected ? p.apply(this, e) : this.receiveBuffer.push(e);
                }),
                (l.prototype.ack = function (t) {
                    var e = this,
                        r = !1;
                    return function () {
                        if (!r) {
                            r = !0;
                            var o = i(arguments);
                            u('sending ack %j', o),
                                e.packet({
                                    type: f(o) ? n.BINARY_ACK : n.ACK,
                                    id: t,
                                    data: o
                                });
                        }
                    };
                }),
                (l.prototype.onack = function (t) {
                    var e = this.acks[t.id];
                    'function' == typeof e ? (u('calling ack %s with %j', t.id, t.data), e.apply(this, t.data), delete this.acks[t.id]) : u('bad ack %s', t.id);
                }),
                (l.prototype.onconnect = function () {
                    (this.connected = !0), (this.disconnected = !1), this.emit('connect'), this.emitBuffered();
                }),
                (l.prototype.emitBuffered = function () {
                    var t;

                    for (t = 0; t < this.receiveBuffer.length; t++) p.apply(this, this.receiveBuffer[t]);

                    for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);

                    this.sendBuffer = [];
                }),
                (l.prototype.ondisconnect = function () {
                    u('server disconnect (%s)', this.nsp), this.destroy(), this.onclose('io server disconnect');
                }),
                (l.prototype.destroy = function () {
                    if (this.subs) {
                        for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();

                        this.subs = null;
                    }

                    this.io.destroy(this);
                }),
                (l.prototype.close = l.prototype.disconnect =
                    function () {
                        return (
                            this.connected &&
                                (u('performing disconnect (%s)', this.nsp),
                                this.packet({
                                    type: n.DISCONNECT
                                })),
                            this.destroy(),
                            this.connected && this.onclose('io client disconnect'),
                            this
                        );
                    }),
                (l.prototype.compress = function (t) {
                    return (this.flags.compress = t), this;
                }),
                (l.prototype.binary = function (t) {
                    return (this.flags.binary = t), this;
                });
        },
        function (t, e, r) {
            var n = r(19),
                o = r(7),
                i = r(3),
                s = r(4),
                a = r(6),
                u = r(5),
                c = r(0)('socket.io-client:manager'),
                f = r(11),
                h = r(10),
                p = Object.prototype.hasOwnProperty;

            function l(t, e) {
                if (!(this instanceof l)) return new l(t, e);
                t && 'object' == typeof t && ((e = t), (t = void 0)),
                    ((e = e || {}).path = e.path || '/socket.io'),
                    (this.nsps = {}),
                    (this.subs = []),
                    (this.opts = e),
                    this.reconnection(!1 !== e.reconnection),
                    this.reconnectionAttempts(e.reconnectionAttempts || 1 / 0),
                    this.reconnectionDelay(e.reconnectionDelay || 1e3),
                    this.reconnectionDelayMax(e.reconnectionDelayMax || 5e3),
                    this.randomizationFactor(e.randomizationFactor || 0.5),
                    (this.backoff = new h({
                        min: this.reconnectionDelay(),
                        max: this.reconnectionDelayMax(),
                        jitter: this.randomizationFactor()
                    })),
                    this.timeout(null == e.timeout ? 2e4 : e.timeout),
                    (this.readyState = 'closed'),
                    (this.uri = t),
                    (this.connecting = []),
                    (this.lastPing = null),
                    (this.encoding = !1),
                    (this.packetBuffer = []);
                var r = e.parser || s;
                (this.encoder = new r.Encoder()), (this.decoder = new r.Decoder()), (this.autoConnect = !1 !== e.autoConnect), this.autoConnect && this.open();
            }

            (t.exports = l),
                (l.prototype.emitAll = function () {
                    for (var t in (this.emit.apply(this, arguments), this.nsps)) p.call(this.nsps, t) && this.nsps[t].emit.apply(this.nsps[t], arguments);
                }),
                (l.prototype.updateSocketIds = function () {
                    for (var t in this.nsps) p.call(this.nsps, t) && (this.nsps[t].id = this.generateId(t));
                }),
                (l.prototype.generateId = function (t) {
                    return ('/' === t ? '' : t + '#') + this.engine.id;
                }),
                i(l.prototype),
                (l.prototype.reconnection = function (t) {
                    return arguments.length ? ((this._reconnection = !!t), this) : this._reconnection;
                }),
                (l.prototype.reconnectionAttempts = function (t) {
                    return arguments.length ? ((this._reconnectionAttempts = t), this) : this._reconnectionAttempts;
                }),
                (l.prototype.reconnectionDelay = function (t) {
                    return arguments.length ? ((this._reconnectionDelay = t), this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay;
                }),
                (l.prototype.randomizationFactor = function (t) {
                    return arguments.length ? ((this._randomizationFactor = t), this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor;
                }),
                (l.prototype.reconnectionDelayMax = function (t) {
                    return arguments.length ? ((this._reconnectionDelayMax = t), this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax;
                }),
                (l.prototype.timeout = function (t) {
                    return arguments.length ? ((this._timeout = t), this) : this._timeout;
                }),
                (l.prototype.maybeReconnectOnOpen = function () {
                    !this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect();
                }),
                (l.prototype.open = l.prototype.connect =
                    function (t, e) {
                        if ((c('readyState %s', this.readyState), ~this.readyState.indexOf('open'))) return this;
                        c('opening %s', this.uri), (this.engine = n(this.uri, this.opts));
                        var r = this.engine,
                            o = this;
                        (this.readyState = 'opening'), (this.skipReconnect = !1);
                        var i = a(r, 'open', function () {
                                o.onopen(), t && t();
                            }),
                            s = a(r, 'error', function (e) {
                                if ((c('connect_error'), o.cleanup(), (o.readyState = 'closed'), o.emitAll('connect_error', e), t)) {
                                    var r = new Error('Connection error');
                                    (r.data = e), t(r);
                                } else o.maybeReconnectOnOpen();
                            });

                        if (!1 !== this._timeout) {
                            var u = this._timeout;
                            c('connect attempt will timeout after %d', u);
                            var f = setTimeout(function () {
                                c('connect attempt timed out after %d', u), i.destroy(), r.close(), r.emit('error', 'timeout'), o.emitAll('connect_timeout', u);
                            }, u);
                            this.subs.push({
                                destroy: function () {
                                    clearTimeout(f);
                                }
                            });
                        }

                        return this.subs.push(i), this.subs.push(s), this;
                    }),
                (l.prototype.onopen = function () {
                    c('open'), this.cleanup(), (this.readyState = 'open'), this.emit('open');
                    var t = this.engine;
                    this.subs.push(a(t, 'data', u(this, 'ondata'))),
                        this.subs.push(a(t, 'ping', u(this, 'onping'))),
                        this.subs.push(a(t, 'pong', u(this, 'onpong'))),
                        this.subs.push(a(t, 'error', u(this, 'onerror'))),
                        this.subs.push(a(t, 'close', u(this, 'onclose'))),
                        this.subs.push(a(this.decoder, 'decoded', u(this, 'ondecoded')));
                }),
                (l.prototype.onping = function () {
                    (this.lastPing = new Date()), this.emitAll('ping');
                }),
                (l.prototype.onpong = function () {
                    this.emitAll('pong', new Date() - this.lastPing);
                }),
                (l.prototype.ondata = function (t) {
                    this.decoder.add(t);
                }),
                (l.prototype.ondecoded = function (t) {
                    this.emit('packet', t);
                }),
                (l.prototype.onerror = function (t) {
                    c('error', t), this.emitAll('error', t);
                }),
                (l.prototype.socket = function (t, e) {
                    var r = this.nsps[t];

                    if (!r) {
                        (r = new o(this, t, e)), (this.nsps[t] = r);
                        var n = this;
                        r.on('connecting', i),
                            r.on('connect', function () {
                                r.id = n.generateId(t);
                            }),
                            this.autoConnect && i();
                    }

                    function i() {
                        ~f(n.connecting, r) || n.connecting.push(r);
                    }

                    return r;
                }),
                (l.prototype.destroy = function (t) {
                    var e = f(this.connecting, t);
                    ~e && this.connecting.splice(e, 1), this.connecting.length || this.close();
                }),
                (l.prototype.packet = function (t) {
                    c('writing packet %j', t);
                    var e = this;
                    t.query && 0 === t.type && (t.nsp += '?' + t.query),
                        e.encoding
                            ? e.packetBuffer.push(t)
                            : ((e.encoding = !0),
                              this.encoder.encode(t, function (r) {
                                  for (var n = 0; n < r.length; n++) e.engine.write(r[n], t.options);

                                  (e.encoding = !1), e.processPacketQueue();
                              }));
                }),
                (l.prototype.processPacketQueue = function () {
                    if (this.packetBuffer.length > 0 && !this.encoding) {
                        var t = this.packetBuffer.shift();
                        this.packet(t);
                    }
                }),
                (l.prototype.cleanup = function () {
                    c('cleanup');

                    for (var t = this.subs.length, e = 0; e < t; e++) {
                        this.subs.shift().destroy();
                    }

                    (this.packetBuffer = []), (this.encoding = !1), (this.lastPing = null), this.decoder.destroy();
                }),
                (l.prototype.close = l.prototype.disconnect =
                    function () {
                        c('disconnect'),
                            (this.skipReconnect = !0),
                            (this.reconnecting = !1),
                            'opening' === this.readyState && this.cleanup(),
                            this.backoff.reset(),
                            (this.readyState = 'closed'),
                            this.engine && this.engine.close();
                    }),
                (l.prototype.onclose = function (t) {
                    c('onclose'),
                        this.cleanup(),
                        this.backoff.reset(),
                        (this.readyState = 'closed'),
                        this.emit('close', t),
                        this._reconnection && !this.skipReconnect && this.reconnect();
                }),
                (l.prototype.reconnect = function () {
                    if (this.reconnecting || this.skipReconnect) return this;
                    var t = this;
                    if (this.backoff.attempts >= this._reconnectionAttempts)
                        c('reconnect failed'), this.backoff.reset(), this.emitAll('reconnect_failed'), (this.reconnecting = !1);
                    else {
                        var e = this.backoff.duration();
                        c('will wait %dms before reconnect attempt', e), (this.reconnecting = !0);
                        var r = setTimeout(function () {
                            t.skipReconnect ||
                                (c('attempting reconnect'),
                                t.emitAll('reconnect_attempt', t.backoff.attempts),
                                t.emitAll('reconnecting', t.backoff.attempts),
                                t.skipReconnect ||
                                    t.open(function (e) {
                                        e
                                            ? (c('reconnect attempt error'), (t.reconnecting = !1), t.reconnect(), t.emitAll('reconnect_error', e.data))
                                            : (c('reconnect success'), t.onreconnect());
                                    }));
                        }, e);
                        this.subs.push({
                            destroy: function () {
                                clearTimeout(r);
                            }
                        });
                    }
                }),
                (l.prototype.onreconnect = function () {
                    var t = this.backoff.attempts;
                    (this.reconnecting = !1), this.backoff.reset(), this.updateSocketIds(), this.emitAll('reconnect', t);
                });
        },
        function (t, e, r) {
            (function (e) {
                t.exports = function (t) {
                    return (r && e.Buffer.isBuffer(t)) || (n && (t instanceof e.ArrayBuffer || o(t)));
                };

                var r = 'function' == typeof e.Buffer && 'function' == typeof e.Buffer.isBuffer,
                    n = 'function' == typeof e.ArrayBuffer,
                    o =
                        n && 'function' == typeof e.ArrayBuffer.isView
                            ? e.ArrayBuffer.isView
                            : function (t) {
                                  return t.buffer instanceof e.ArrayBuffer;
                              };
            }.call(this, r(1)));
        },
        function (t, e) {
            function r(t) {
                (t = t || {}),
                    (this.ms = t.min || 100),
                    (this.max = t.max || 1e4),
                    (this.factor = t.factor || 2),
                    (this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0),
                    (this.attempts = 0);
            }

            (t.exports = r),
                (r.prototype.duration = function () {
                    var t = this.ms * Math.pow(this.factor, this.attempts++);

                    if (this.jitter) {
                        var e = Math.random(),
                            r = Math.floor(e * this.jitter * t);
                        t = 0 == (1 & Math.floor(10 * e)) ? t - r : t + r;
                    }

                    return 0 | Math.min(t, this.max);
                }),
                (r.prototype.reset = function () {
                    this.attempts = 0;
                }),
                (r.prototype.setMin = function (t) {
                    this.ms = t;
                }),
                (r.prototype.setMax = function (t) {
                    this.max = t;
                }),
                (r.prototype.setJitter = function (t) {
                    this.jitter = t;
                });
        },
        function (t, e) {
            var r = [].indexOf;

            t.exports = function (t, e) {
                if (r) return t.indexOf(e);

                for (var n = 0; n < t.length; ++n) if (t[n] === e) return n;

                return -1;
            };
        },
        function (t, e) {
            var r = {}.toString;

            t.exports =
                Array.isArray ||
                function (t) {
                    return '[object Array]' == r.call(t);
                };
        },
        function (t, e) {
            (e.read = function (t, e, r, n, o) {
                var i,
                    s,
                    a = 8 * o - n - 1,
                    u = (1 << a) - 1,
                    c = u >> 1,
                    f = -7,
                    h = r ? o - 1 : 0,
                    p = r ? -1 : 1,
                    l = t[e + h];

                for (h += p, i = l & ((1 << -f) - 1), l >>= -f, f += a; f > 0; i = 256 * i + t[e + h], h += p, f -= 8);

                for (s = i & ((1 << -f) - 1), i >>= -f, f += n; f > 0; s = 256 * s + t[e + h], h += p, f -= 8);

                if (0 === i) i = 1 - c;
                else {
                    if (i === u) return s ? NaN : (1 / 0) * (l ? -1 : 1);
                    (s += Math.pow(2, n)), (i -= c);
                }
                return (l ? -1 : 1) * s * Math.pow(2, i - n);
            }),
                (e.write = function (t, e, r, n, o, i) {
                    var s,
                        a,
                        u,
                        c = 8 * i - o - 1,
                        f = (1 << c) - 1,
                        h = f >> 1,
                        p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
                        l = n ? 0 : i - 1,
                        d = n ? 1 : -1,
                        y = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0;

                    for (
                        e = Math.abs(e),
                            isNaN(e) || e === 1 / 0
                                ? ((a = isNaN(e) ? 1 : 0), (s = f))
                                : ((s = Math.floor(Math.log(e) / Math.LN2)),
                                  e * (u = Math.pow(2, -s)) < 1 && (s--, (u *= 2)),
                                  (e += s + h >= 1 ? p / u : p * Math.pow(2, 1 - h)) * u >= 2 && (s++, (u /= 2)),
                                  s + h >= f
                                      ? ((a = 0), (s = f))
                                      : s + h >= 1
                                      ? ((a = (e * u - 1) * Math.pow(2, o)), (s += h))
                                      : ((a = e * Math.pow(2, h - 1) * Math.pow(2, o)), (s = 0)));
                        o >= 8;
                        t[r + l] = 255 & a, l += d, a /= 256, o -= 8
                    );

                    for (s = (s << o) | a, c += o; c > 0; t[r + l] = 255 & s, l += d, s /= 256, c -= 8);

                    t[r + l - d] |= 128 * y;
                });
        },
        function (t, e, r) {
            'use strict';

            (e.byteLength = function (t) {
                var e = c(t),
                    r = e[0],
                    n = e[1];
                return (3 * (r + n)) / 4 - n;
            }),
                (e.toByteArray = function (t) {
                    for (var e, r = c(t), n = r[0], s = r[1], a = new i(0), u = 0, f = s > 0 ? n - 4 : n, h = 0; h < f; h += 4)
                        (e = (o[t.charCodeAt(h)] << 18) | (o[t.charCodeAt(h + 1)] << 12) | (o[t.charCodeAt(h + 2)] << 6) | o[t.charCodeAt(h + 3)]),
                            (a[u++] = (e >> 16) & 255),
                            (a[u++] = (e >> 8) & 255),
                            (a[u++] = 255 & e);

                    2 === s && ((e = (o[t.charCodeAt(h)] << 2) | (o[t.charCodeAt(h + 1)] >> 4)), (a[u++] = 255 & e));
                    1 === s && ((e = (o[t.charCodeAt(h)] << 10) | (o[t.charCodeAt(h + 1)] << 4) | (o[t.charCodeAt(h + 2)] >> 2)), (a[u++] = (e >> 8) & 255), (a[u++] = 255 & e));
                    return a;
                }),
                (e.fromByteArray = function (t) {
                    for (var e, r = t.length, o = r % 3, i = [], s = 0, a = r - o; s < a; s += 16383) i.push(f(t, s, s + 16383 > a ? a : s + 16383));

                    1 === o
                        ? ((e = t[r - 1]), i.push(n[e >> 2] + n[(e << 4) & 63] + '=='))
                        : 2 === o && ((e = (t[r - 2] << 8) + t[r - 1]), i.push(n[e >> 10] + n[(e >> 4) & 63] + n[(e << 2) & 63] + '='));
                    return i.join('');
                });

            for (
                var n = [],
                    o = [],
                    i = 'undefined' != typeof Uint8Array ? Uint8Array : Array,
                    s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
                    a = 0,
                    u = s.length;
                a < u;
                ++a
            )
                (n[a] = s[a]), (o[s.charCodeAt(a)] = a);

            function c(t) {
                var e = t.length;
                if (e % 4 > 0) throw new Error('Invalid string. Length must be a multiple of 4');
                var r = t.indexOf('=');
                return -1 === r && (r = e), [r, r === e ? 0 : 4 - (r % 4)];
            }

            function f(t, e, r) {
                for (var o, i, s = [], a = e; a < r; a += 3)
                    (o = ((t[a] << 16) & 16711680) + ((t[a + 1] << 8) & 65280) + (255 & t[a + 2])),
                        s.push(n[((i = o) >> 18) & 63] + n[(i >> 12) & 63] + n[(i >> 6) & 63] + n[63 & i]);

                return s.join('');
            }

            (o['-'.charCodeAt(0)] = 62), (o['_'.charCodeAt(0)] = 63);
        },
        function (t, e, r) {
            'use strict';

            (function (t) {
                /*!
                 * The buffer module from node.js, for the browser.
                 *
                 * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
                 * @license  MIT
                 */
                var n = r(14),
                    o = r(13),
                    i = r(12);

                function s() {
                    return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
                }

                function a(t, e) {
                    if (s() < e) throw new RangeError('Invalid typed array length');
                    return u.TYPED_ARRAY_SUPPORT ? ((t = new Uint8Array(e)).__proto__ = u.prototype) : (null === t && (t = new u(e)), (t.length = e)), t;
                }

                function u(t, e, r) {
                    if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);

                    if ('number' == typeof t) {
                        if ('string' == typeof e) throw new Error('If encoding is specified then the first argument must be a string');
                        return h(this, t);
                    }

                    return c(this, t, e, r);
                }

                function c(t, e, r, n) {
                    if ('number' == typeof e) throw new TypeError('"value" argument must not be a number');
                    return 'undefined' != typeof ArrayBuffer && e instanceof ArrayBuffer
                        ? (function (t, e, r, n) {
                              if ((e.byteLength, r < 0 || e.byteLength < r)) throw new RangeError("'offset' is out of bounds");
                              if (e.byteLength < r + (n || 0)) throw new RangeError("'length' is out of bounds");
                              e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n);
                              u.TYPED_ARRAY_SUPPORT ? ((t = e).__proto__ = u.prototype) : (t = p(t, e));
                              return t;
                          })(t, e, r, n)
                        : 'string' == typeof e
                        ? (function (t, e, r) {
                              ('string' == typeof r && '' !== r) || (r = 'utf8');
                              if (!u.isEncoding(r)) throw new TypeError('"encoding" must be a valid string encoding');
                              var n = 0 | d(e, r),
                                  o = (t = a(t, n)).write(e, r);
                              o !== n && (t = t.slice(0, o));
                              return t;
                          })(t, e, r)
                        : (function (t, e) {
                              if (u.isBuffer(e)) {
                                  var r = 0 | l(e.length);
                                  return 0 === (t = a(t, r)).length ? t : (e.copy(t, 0, 0, r), t);
                              }

                              if (e) {
                                  if (('undefined' != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer) || 'length' in e)
                                      return 'number' != typeof e.length || (n = e.length) != n ? a(t, 0) : p(t, e);
                                  if ('Buffer' === e.type && i(e.data)) return p(t, e.data);
                              }

                              var n;
                              throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');
                          })(t, e);
                }

                function f(t) {
                    if ('number' != typeof t) throw new TypeError('"size" argument must be a number');
                    if (t < 0) throw new RangeError('"size" argument must not be negative');
                }

                function h(t, e) {
                    if ((f(e), (t = a(t, e < 0 ? 0 : 0 | l(e))), !u.TYPED_ARRAY_SUPPORT)) for (var r = 0; r < e; ++r) t[r] = 0;
                    return t;
                }

                function p(t, e) {
                    var r = e.length < 0 ? 0 : 0 | l(e.length);
                    t = a(t, r);

                    for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];

                    return t;
                }

                function l(t) {
                    if (t >= s()) throw new RangeError('Attempt to allocate Buffer larger than maximum size: 0x' + s().toString(16) + ' bytes');
                    return 0 | t;
                }

                function d(t, e) {
                    if (u.isBuffer(t)) return t.length;
                    if ('undefined' != typeof ArrayBuffer && 'function' == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;
                    'string' != typeof t && (t = '' + t);
                    var r = t.length;
                    if (0 === r) return 0;

                    for (var n = !1; ; )
                        switch (e) {
                            case 'ascii':
                            case 'latin1':
                            case 'binary':
                                return r;

                            case 'utf8':
                            case 'utf-8':
                            case void 0:
                                return j(t).length;

                            case 'ucs2':
                            case 'ucs-2':
                            case 'utf16le':
                            case 'utf-16le':
                                return 2 * r;

                            case 'hex':
                                return r >>> 1;

                            case 'base64':
                                return q(t).length;

                            default:
                                if (n) return j(t).length;
                                (e = ('' + e).toLowerCase()), (n = !0);
                        }
                }

                function y(t, e, r) {
                    var n = t[e];
                    (t[e] = t[r]), (t[r] = n);
                }

                function g(t, e, r, n, o) {
                    if (0 === t.length) return -1;

                    if (
                        ('string' == typeof r ? ((n = r), (r = 0)) : r > 2147483647 ? (r = 2147483647) : r < -2147483648 && (r = -2147483648),
                        (r = +r),
                        isNaN(r) && (r = o ? 0 : t.length - 1),
                        r < 0 && (r = t.length + r),
                        r >= t.length)
                    ) {
                        if (o) return -1;
                        r = t.length - 1;
                    } else if (r < 0) {
                        if (!o) return -1;
                        r = 0;
                    }

                    if (('string' == typeof e && (e = u.from(e, n)), u.isBuffer(e))) return 0 === e.length ? -1 : v(t, e, r, n, o);
                    if ('number' == typeof e)
                        return (
                            (e &= 255),
                            u.TYPED_ARRAY_SUPPORT && 'function' == typeof Uint8Array.prototype.indexOf
                                ? o
                                    ? Uint8Array.prototype.indexOf.call(t, e, r)
                                    : Uint8Array.prototype.lastIndexOf.call(t, e, r)
                                : v(t, [e], r, n, o)
                        );
                    throw new TypeError('val must be string, number or Buffer');
                }

                function v(t, e, r, n, o) {
                    var i,
                        s = 1,
                        a = t.length,
                        u = e.length;

                    if (void 0 !== n && ('ucs2' === (n = String(n).toLowerCase()) || 'ucs-2' === n || 'utf16le' === n || 'utf-16le' === n)) {
                        if (t.length < 2 || e.length < 2) return -1;
                        (s = 2), (a /= 2), (u /= 2), (r /= 2);
                    }

                    function c(t, e) {
                        return 1 === s ? t[e] : t.readUInt16BE(e * s);
                    }

                    if (o) {
                        var f = -1;

                        for (i = r; i < a; i++)
                            if (c(t, i) === c(e, -1 === f ? 0 : i - f)) {
                                if ((-1 === f && (f = i), i - f + 1 === u)) return f * s;
                            } else -1 !== f && (i -= i - f), (f = -1);
                    } else
                        for (r + u > a && (r = a - u), i = r; i >= 0; i--) {
                            for (var h = !0, p = 0; p < u; p++)
                                if (c(t, i + p) !== c(e, p)) {
                                    h = !1;
                                    break;
                                }

                            if (h) return i;
                        }

                    return -1;
                }

                function b(t, e, r, n) {
                    r = Number(r) || 0;
                    var o = t.length - r;
                    n ? (n = Number(n)) > o && (n = o) : (n = o);
                    var i = e.length;
                    if (i % 2 != 0) throw new TypeError('Invalid hex string');
                    n > i / 2 && (n = i / 2);

                    for (var s = 0; s < n; ++s) {
                        var a = parseInt(e.substr(2 * s, 2), 16);
                        if (isNaN(a)) return s;
                        t[r + s] = a;
                    }

                    return s;
                }

                function m(t, e, r, n) {
                    return F(j(e, t.length - r), t, r, n);
                }

                function w(t, e, r, n) {
                    return F(
                        (function (t) {
                            for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));

                            return e;
                        })(e),
                        t,
                        r,
                        n
                    );
                }

                function A(t, e, r, n) {
                    return w(t, e, r, n);
                }

                function _(t, e, r, n) {
                    return F(q(e), t, r, n);
                }

                function E(t, e, r, n) {
                    return F(
                        (function (t, e) {
                            for (var r, n, o, i = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) (r = t.charCodeAt(s)), (n = r >> 8), (o = r % 256), i.push(o), i.push(n);

                            return i;
                        })(e, t.length - r),
                        t,
                        r,
                        n
                    );
                }

                function k(t, e, r) {
                    return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));
                }

                function B(t, e, r) {
                    r = Math.min(t.length, r);

                    for (var n = [], o = e; o < r; ) {
                        var i,
                            s,
                            a,
                            u,
                            c = t[o],
                            f = null,
                            h = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;
                        if (o + h <= r)
                            switch (h) {
                                case 1:
                                    c < 128 && (f = c);
                                    break;

                                case 2:
                                    128 == (192 & (i = t[o + 1])) && (u = ((31 & c) << 6) | (63 & i)) > 127 && (f = u);
                                    break;

                                case 3:
                                    (i = t[o + 1]),
                                        (s = t[o + 2]),
                                        128 == (192 & i) && 128 == (192 & s) && (u = ((15 & c) << 12) | ((63 & i) << 6) | (63 & s)) > 2047 && (u < 55296 || u > 57343) && (f = u);
                                    break;

                                case 4:
                                    (i = t[o + 1]),
                                        (s = t[o + 2]),
                                        (a = t[o + 3]),
                                        128 == (192 & i) &&
                                            128 == (192 & s) &&
                                            128 == (192 & a) &&
                                            (u = ((15 & c) << 18) | ((63 & i) << 12) | ((63 & s) << 6) | (63 & a)) > 65535 &&
                                            u < 1114112 &&
                                            (f = u);
                            }
                        null === f ? ((f = 65533), (h = 1)) : f > 65535 && ((f -= 65536), n.push(((f >>> 10) & 1023) | 55296), (f = 56320 | (1023 & f))), n.push(f), (o += h);
                    }

                    return (function (t) {
                        var e = t.length;
                        if (e <= R) return String.fromCharCode.apply(String, t);
                        var r = '',
                            n = 0;

                        for (; n < e; ) r += String.fromCharCode.apply(String, t.slice(n, (n += R)));

                        return r;
                    })(n);
                }

                (e.Buffer = u),
                    (e.SlowBuffer = function (t) {
                        +t != t && (t = 0);
                        return u.alloc(+t);
                    }),
                    (e.INSPECT_MAX_BYTES = 50),
                    (u.TYPED_ARRAY_SUPPORT =
                        void 0 !== t.TYPED_ARRAY_SUPPORT
                            ? t.TYPED_ARRAY_SUPPORT
                            : (function () {
                                  try {
                                      var t = new Uint8Array(1);
                                      return (
                                          (t.__proto__ = {
                                              __proto__: Uint8Array.prototype,
                                              foo: function () {
                                                  return 42;
                                              }
                                          }),
                                          42 === t.foo() && 'function' == typeof t.subarray && 0 === t.subarray(1, 1).byteLength
                                      );
                                  } catch (t) {
                                      return !1;
                                  }
                              })()),
                    (e.kMaxLength = s()),
                    (u.poolSize = 8192),
                    (u._augment = function (t) {
                        return (t.__proto__ = u.prototype), t;
                    }),
                    (u.from = function (t, e, r) {
                        return c(null, t, e, r);
                    }),
                    u.TYPED_ARRAY_SUPPORT &&
                        ((u.prototype.__proto__ = Uint8Array.prototype),
                        (u.__proto__ = Uint8Array),
                        'undefined' != typeof Symbol &&
                            Symbol.species &&
                            u[Symbol.species] === u &&
                            Object.defineProperty(u, Symbol.species, {
                                value: null,
                                configurable: !0
                            })),
                    (u.alloc = function (t, e, r) {
                        return (function (t, e, r, n) {
                            return f(e), e <= 0 ? a(t, e) : void 0 !== r ? ('string' == typeof n ? a(t, e).fill(r, n) : a(t, e).fill(r)) : a(t, e);
                        })(null, t, e, r);
                    }),
                    (u.allocUnsafe = function (t) {
                        return h(null, t);
                    }),
                    (u.allocUnsafeSlow = function (t) {
                        return h(null, t);
                    }),
                    (u.isBuffer = function (t) {
                        return !(null == t || !t._isBuffer);
                    }),
                    (u.compare = function (t, e) {
                        if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError('Arguments must be Buffers');
                        if (t === e) return 0;

                        for (var r = t.length, n = e.length, o = 0, i = Math.min(r, n); o < i; ++o)
                            if (t[o] !== e[o]) {
                                (r = t[o]), (n = e[o]);
                                break;
                            }

                        return r < n ? -1 : n < r ? 1 : 0;
                    }),
                    (u.isEncoding = function (t) {
                        switch (String(t).toLowerCase()) {
                            case 'hex':
                            case 'utf8':
                            case 'utf-8':
                            case 'ascii':
                            case 'latin1':
                            case 'binary':
                            case 'base64':
                            case 'ucs2':
                            case 'ucs-2':
                            case 'utf16le':
                            case 'utf-16le':
                                return !0;

                            default:
                                return !1;
                        }
                    }),
                    (u.concat = function (t, e) {
                        if (!i(t)) throw new TypeError('"list" argument must be an Array of Buffers');
                        if (0 === t.length) return u.alloc(0);
                        var r;
                        if (void 0 === e) for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
                        var n = u.allocUnsafe(e),
                            o = 0;

                        for (r = 0; r < t.length; ++r) {
                            var s = t[r];
                            if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers');
                            s.copy(n, o), (o += s.length);
                        }

                        return n;
                    }),
                    (u.byteLength = d),
                    (u.prototype._isBuffer = !0),
                    (u.prototype.swap16 = function () {
                        var t = this.length;
                        if (t % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits');

                        for (var e = 0; e < t; e += 2) y(this, e, e + 1);

                        return this;
                    }),
                    (u.prototype.swap32 = function () {
                        var t = this.length;
                        if (t % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits');

                        for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2);

                        return this;
                    }),
                    (u.prototype.swap64 = function () {
                        var t = this.length;
                        if (t % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits');

                        for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);

                        return this;
                    }),
                    (u.prototype.toString = function () {
                        var t = 0 | this.length;
                        return 0 === t
                            ? ''
                            : 0 === arguments.length
                            ? B(this, 0, t)
                            : function (t, e, r) {
                                  var n = !1;
                                  if (((void 0 === e || e < 0) && (e = 0), e > this.length)) return '';
                                  if (((void 0 === r || r > this.length) && (r = this.length), r <= 0)) return '';
                                  if ((r >>>= 0) <= (e >>>= 0)) return '';

                                  for (t || (t = 'utf8'); ; )
                                      switch (t) {
                                          case 'hex':
                                              return T(this, e, r);

                                          case 'utf8':
                                          case 'utf-8':
                                              return B(this, e, r);

                                          case 'ascii':
                                              return P(this, e, r);

                                          case 'latin1':
                                          case 'binary':
                                              return S(this, e, r);

                                          case 'base64':
                                              return k(this, e, r);

                                          case 'ucs2':
                                          case 'ucs-2':
                                          case 'utf16le':
                                          case 'utf-16le':
                                              return O(this, e, r);

                                          default:
                                              if (n) throw new TypeError('Unknown encoding: ' + t);
                                              (t = (t + '').toLowerCase()), (n = !0);
                                      }
                              }.apply(this, arguments);
                    }),
                    (u.prototype.equals = function (t) {
                        if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer');
                        return this === t || 0 === u.compare(this, t);
                    }),
                    (u.prototype.inspect = function () {
                        var t = '',
                            r = e.INSPECT_MAX_BYTES;
                        return this.length > 0 && ((t = this.toString('hex', 0, r).match(/.{2}/g).join(' ')), this.length > r && (t += ' ... ')), '<Buffer ' + t + '>';
                    }),
                    (u.prototype.compare = function (t, e, r, n, o) {
                        if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer');
                        if (
                            (void 0 === e && (e = 0),
                            void 0 === r && (r = t ? t.length : 0),
                            void 0 === n && (n = 0),
                            void 0 === o && (o = this.length),
                            e < 0 || r > t.length || n < 0 || o > this.length)
                        )
                            throw new RangeError('out of range index');
                        if (n >= o && e >= r) return 0;
                        if (n >= o) return -1;
                        if (e >= r) return 1;
                        if (((e >>>= 0), (r >>>= 0), (n >>>= 0), (o >>>= 0), this === t)) return 0;

                        for (var i = o - n, s = r - e, a = Math.min(i, s), c = this.slice(n, o), f = t.slice(e, r), h = 0; h < a; ++h)
                            if (c[h] !== f[h]) {
                                (i = c[h]), (s = f[h]);
                                break;
                            }

                        return i < s ? -1 : s < i ? 1 : 0;
                    }),
                    (u.prototype.includes = function (t, e, r) {
                        return -1 !== this.indexOf(t, e, r);
                    }),
                    (u.prototype.indexOf = function (t, e, r) {
                        return g(this, t, e, r, !0);
                    }),
                    (u.prototype.lastIndexOf = function (t, e, r) {
                        return g(this, t, e, r, !1);
                    }),
                    (u.prototype.write = function (t, e, r, n) {
                        if (void 0 === e) (n = 'utf8'), (r = this.length), (e = 0);
                        else if (void 0 === r && 'string' == typeof e) (n = e), (r = this.length), (e = 0);
                        else {
                            if (!isFinite(e)) throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');
                            (e |= 0), isFinite(r) ? ((r |= 0), void 0 === n && (n = 'utf8')) : ((n = r), (r = void 0));
                        }
                        var o = this.length - e;
                        if (((void 0 === r || r > o) && (r = o), (t.length > 0 && (r < 0 || e < 0)) || e > this.length))
                            throw new RangeError('Attempt to write outside buffer bounds');
                        n || (n = 'utf8');

                        for (var i = !1; ; )
                            switch (n) {
                                case 'hex':
                                    return b(this, t, e, r);

                                case 'utf8':
                                case 'utf-8':
                                    return m(this, t, e, r);

                                case 'ascii':
                                    return w(this, t, e, r);

                                case 'latin1':
                                case 'binary':
                                    return A(this, t, e, r);

                                case 'base64':
                                    return _(this, t, e, r);

                                case 'ucs2':
                                case 'ucs-2':
                                case 'utf16le':
                                case 'utf-16le':
                                    return E(this, t, e, r);

                                default:
                                    if (i) throw new TypeError('Unknown encoding: ' + n);
                                    (n = ('' + n).toLowerCase()), (i = !0);
                            }
                    }),
                    (u.prototype.toJSON = function () {
                        return {
                            type: 'Buffer',
                            data: Array.prototype.slice.call(this._arr || this, 0)
                        };
                    });
                var R = 4096;

                function P(t, e, r) {
                    var n = '';
                    r = Math.min(t.length, r);

                    for (var o = e; o < r; ++o) n += String.fromCharCode(127 & t[o]);

                    return n;
                }

                function S(t, e, r) {
                    var n = '';
                    r = Math.min(t.length, r);

                    for (var o = e; o < r; ++o) n += String.fromCharCode(t[o]);

                    return n;
                }

                function T(t, e, r) {
                    var n = t.length;
                    (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);

                    for (var o = '', i = e; i < r; ++i) o += D(t[i]);

                    return o;
                }

                function O(t, e, r) {
                    for (var n = t.slice(e, r), o = '', i = 0; i < n.length; i += 2) o += String.fromCharCode(n[i] + 256 * n[i + 1]);

                    return o;
                }

                function x(t, e, r) {
                    if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint');
                    if (t + e > r) throw new RangeError('Trying to access beyond buffer length');
                }

                function C(t, e, r, n, o, i) {
                    if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
                    if (e > o || e < i) throw new RangeError('"value" argument is out of bounds');
                    if (r + n > t.length) throw new RangeError('Index out of range');
                }

                function U(t, e, r, n) {
                    e < 0 && (e = 65535 + e + 1);

                    for (var o = 0, i = Math.min(t.length - r, 2); o < i; ++o) t[r + o] = (e & (255 << (8 * (n ? o : 1 - o)))) >>> (8 * (n ? o : 1 - o));
                }

                function L(t, e, r, n) {
                    e < 0 && (e = 4294967295 + e + 1);

                    for (var o = 0, i = Math.min(t.length - r, 4); o < i; ++o) t[r + o] = (e >>> (8 * (n ? o : 3 - o))) & 255;
                }

                function I(t, e, r, n, o, i) {
                    if (r + n > t.length) throw new RangeError('Index out of range');
                    if (r < 0) throw new RangeError('Index out of range');
                }

                function N(t, e, r, n, i) {
                    return i || I(t, 0, r, 4), o.write(t, e, r, n, 23, 4), r + 4;
                }

                function M(t, e, r, n, i) {
                    return i || I(t, 0, r, 8), o.write(t, e, r, n, 52, 8), r + 8;
                }

                (u.prototype.slice = function (t, e) {
                    var r,
                        n = this.length;
                    if (
                        ((t = ~~t),
                        (e = void 0 === e ? n : ~~e),
                        t < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n),
                        e < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n),
                        e < t && (e = t),
                        u.TYPED_ARRAY_SUPPORT)
                    )
                        (r = this.subarray(t, e)).__proto__ = u.prototype;
                    else {
                        var o = e - t;
                        r = new u(o, void 0);

                        for (var i = 0; i < o; ++i) r[i] = this[i + t];
                    }
                    return r;
                }),
                    (u.prototype.readUIntLE = function (t, e, r) {
                        (t |= 0), (e |= 0), r || x(t, e, this.length);

                        for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256); ) n += this[t + i] * o;

                        return n;
                    }),
                    (u.prototype.readUIntBE = function (t, e, r) {
                        (t |= 0), (e |= 0), r || x(t, e, this.length);

                        for (var n = this[t + --e], o = 1; e > 0 && (o *= 256); ) n += this[t + --e] * o;

                        return n;
                    }),
                    (u.prototype.readUInt8 = function (t, e) {
                        return e || x(t, 1, this.length), this[t];
                    }),
                    (u.prototype.readUInt16LE = function (t, e) {
                        return e || x(t, 2, this.length), this[t] | (this[t + 1] << 8);
                    }),
                    (u.prototype.readUInt16BE = function (t, e) {
                        return e || x(t, 2, this.length), (this[t] << 8) | this[t + 1];
                    }),
                    (u.prototype.readUInt32LE = function (t, e) {
                        return e || x(t, 4, this.length), (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + 16777216 * this[t + 3];
                    }),
                    (u.prototype.readUInt32BE = function (t, e) {
                        return e || x(t, 4, this.length), 16777216 * this[t] + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]);
                    }),
                    (u.prototype.readIntLE = function (t, e, r) {
                        (t |= 0), (e |= 0), r || x(t, e, this.length);

                        for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256); ) n += this[t + i] * o;

                        return n >= (o *= 128) && (n -= Math.pow(2, 8 * e)), n;
                    }),
                    (u.prototype.readIntBE = function (t, e, r) {
                        (t |= 0), (e |= 0), r || x(t, e, this.length);

                        for (var n = e, o = 1, i = this[t + --n]; n > 0 && (o *= 256); ) i += this[t + --n] * o;

                        return i >= (o *= 128) && (i -= Math.pow(2, 8 * e)), i;
                    }),
                    (u.prototype.readInt8 = function (t, e) {
                        return e || x(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];
                    }),
                    (u.prototype.readInt16LE = function (t, e) {
                        e || x(t, 2, this.length);
                        var r = this[t] | (this[t + 1] << 8);
                        return 32768 & r ? 4294901760 | r : r;
                    }),
                    (u.prototype.readInt16BE = function (t, e) {
                        e || x(t, 2, this.length);
                        var r = this[t + 1] | (this[t] << 8);
                        return 32768 & r ? 4294901760 | r : r;
                    }),
                    (u.prototype.readInt32LE = function (t, e) {
                        return e || x(t, 4, this.length), this[t] | (this[t + 1] << 8) | (this[t + 2] << 16) | (this[t + 3] << 24);
                    }),
                    (u.prototype.readInt32BE = function (t, e) {
                        return e || x(t, 4, this.length), (this[t] << 24) | (this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3];
                    }),
                    (u.prototype.readFloatLE = function (t, e) {
                        return e || x(t, 4, this.length), o.read(this, t, !0, 23, 4);
                    }),
                    (u.prototype.readFloatBE = function (t, e) {
                        return e || x(t, 4, this.length), o.read(this, t, !1, 23, 4);
                    }),
                    (u.prototype.readDoubleLE = function (t, e) {
                        return e || x(t, 8, this.length), o.read(this, t, !0, 52, 8);
                    }),
                    (u.prototype.readDoubleBE = function (t, e) {
                        return e || x(t, 8, this.length), o.read(this, t, !1, 52, 8);
                    }),
                    (u.prototype.writeUIntLE = function (t, e, r, n) {
                        ((t = +t), (e |= 0), (r |= 0), n) || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
                        var o = 1,
                            i = 0;

                        for (this[e] = 255 & t; ++i < r && (o *= 256); ) this[e + i] = (t / o) & 255;

                        return e + r;
                    }),
                    (u.prototype.writeUIntBE = function (t, e, r, n) {
                        ((t = +t), (e |= 0), (r |= 0), n) || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
                        var o = r - 1,
                            i = 1;

                        for (this[e + o] = 255 & t; --o >= 0 && (i *= 256); ) this[e + o] = (t / i) & 255;

                        return e + r;
                    }),
                    (u.prototype.writeUInt8 = function (t, e, r) {
                        return (t = +t), (e |= 0), r || C(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), (this[e] = 255 & t), e + 1;
                    }),
                    (u.prototype.writeUInt16LE = function (t, e, r) {
                        return (
                            (t = +t), (e |= 0), r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : U(this, t, e, !0), e + 2
                        );
                    }),
                    (u.prototype.writeUInt16BE = function (t, e, r) {
                        return (
                            (t = +t), (e |= 0), r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : U(this, t, e, !1), e + 2
                        );
                    }),
                    (u.prototype.writeUInt32LE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 4, 4294967295, 0),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e + 3] = t >>> 24), (this[e + 2] = t >>> 16), (this[e + 1] = t >>> 8), (this[e] = 255 & t)) : L(this, t, e, !0),
                            e + 4
                        );
                    }),
                    (u.prototype.writeUInt32BE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 4, 4294967295, 0),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t)) : L(this, t, e, !1),
                            e + 4
                        );
                    }),
                    (u.prototype.writeIntLE = function (t, e, r, n) {
                        if (((t = +t), (e |= 0), !n)) {
                            var o = Math.pow(2, 8 * r - 1);
                            C(this, t, e, r, o - 1, -o);
                        }

                        var i = 0,
                            s = 1,
                            a = 0;

                        for (this[e] = 255 & t; ++i < r && (s *= 256); ) t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1), (this[e + i] = (((t / s) >> 0) - a) & 255);

                        return e + r;
                    }),
                    (u.prototype.writeIntBE = function (t, e, r, n) {
                        if (((t = +t), (e |= 0), !n)) {
                            var o = Math.pow(2, 8 * r - 1);
                            C(this, t, e, r, o - 1, -o);
                        }

                        var i = r - 1,
                            s = 1,
                            a = 0;

                        for (this[e + i] = 255 & t; --i >= 0 && (s *= 256); ) t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1), (this[e + i] = (((t / s) >> 0) - a) & 255);

                        return e + r;
                    }),
                    (u.prototype.writeInt8 = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 1, 127, -128),
                            u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)),
                            t < 0 && (t = 255 + t + 1),
                            (this[e] = 255 & t),
                            e + 1
                        );
                    }),
                    (u.prototype.writeInt16LE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 2, 32767, -32768),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : U(this, t, e, !0),
                            e + 2
                        );
                    }),
                    (u.prototype.writeInt16BE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 2, 32767, -32768),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : U(this, t, e, !1),
                            e + 2
                        );
                    }),
                    (u.prototype.writeInt32LE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 4, 2147483647, -2147483648),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8), (this[e + 2] = t >>> 16), (this[e + 3] = t >>> 24)) : L(this, t, e, !0),
                            e + 4
                        );
                    }),
                    (u.prototype.writeInt32BE = function (t, e, r) {
                        return (
                            (t = +t),
                            (e |= 0),
                            r || C(this, t, e, 4, 2147483647, -2147483648),
                            t < 0 && (t = 4294967295 + t + 1),
                            u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t)) : L(this, t, e, !1),
                            e + 4
                        );
                    }),
                    (u.prototype.writeFloatLE = function (t, e, r) {
                        return N(this, t, e, !0, r);
                    }),
                    (u.prototype.writeFloatBE = function (t, e, r) {
                        return N(this, t, e, !1, r);
                    }),
                    (u.prototype.writeDoubleLE = function (t, e, r) {
                        return M(this, t, e, !0, r);
                    }),
                    (u.prototype.writeDoubleBE = function (t, e, r) {
                        return M(this, t, e, !1, r);
                    }),
                    (u.prototype.copy = function (t, e, r, n) {
                        if ((r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t.length), e || (e = 0), n > 0 && n < r && (n = r), n === r)) return 0;
                        if (0 === t.length || 0 === this.length) return 0;
                        if (e < 0) throw new RangeError('targetStart out of bounds');
                        if (r < 0 || r >= this.length) throw new RangeError('sourceStart out of bounds');
                        if (n < 0) throw new RangeError('sourceEnd out of bounds');
                        n > this.length && (n = this.length), t.length - e < n - r && (n = t.length - e + r);
                        var o,
                            i = n - r;
                        if (this === t && r < e && e < n) for (o = i - 1; o >= 0; --o) t[o + e] = this[o + r];
                        else if (i < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < i; ++o) t[o + e] = this[o + r];
                        else Uint8Array.prototype.set.call(t, this.subarray(r, r + i), e);
                        return i;
                    }),
                    (u.prototype.fill = function (t, e, r, n) {
                        if ('string' == typeof t) {
                            if (('string' == typeof e ? ((n = e), (e = 0), (r = this.length)) : 'string' == typeof r && ((n = r), (r = this.length)), 1 === t.length)) {
                                var o = t.charCodeAt(0);
                                o < 256 && (t = o);
                            }

                            if (void 0 !== n && 'string' != typeof n) throw new TypeError('encoding must be a string');
                            if ('string' == typeof n && !u.isEncoding(n)) throw new TypeError('Unknown encoding: ' + n);
                        } else 'number' == typeof t && (t &= 255);

                        if (e < 0 || this.length < e || this.length < r) throw new RangeError('Out of range index');
                        if (r <= e) return this;
                        var i;
                        if (((e >>>= 0), (r = void 0 === r ? this.length : r >>> 0), t || (t = 0), 'number' == typeof t)) for (i = e; i < r; ++i) this[i] = t;
                        else {
                            var s = u.isBuffer(t) ? t : j(new u(t, n).toString()),
                                a = s.length;

                            for (i = 0; i < r - e; ++i) this[i + e] = s[i % a];
                        }
                        return this;
                    });
                var Y = /[^+\/0-9A-Za-z-_]/g;

                function D(t) {
                    return t < 16 ? '0' + t.toString(16) : t.toString(16);
                }

                function j(t, e) {
                    var r;
                    e = e || 1 / 0;

                    for (var n = t.length, o = null, i = [], s = 0; s < n; ++s) {
                        if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {
                            if (!o) {
                                if (r > 56319) {
                                    (e -= 3) > -1 && i.push(239, 191, 189);
                                    continue;
                                }

                                if (s + 1 === n) {
                                    (e -= 3) > -1 && i.push(239, 191, 189);
                                    continue;
                                }

                                o = r;
                                continue;
                            }

                            if (r < 56320) {
                                (e -= 3) > -1 && i.push(239, 191, 189), (o = r);
                                continue;
                            }

                            r = 65536 + (((o - 55296) << 10) | (r - 56320));
                        } else o && (e -= 3) > -1 && i.push(239, 191, 189);

                        if (((o = null), r < 128)) {
                            if ((e -= 1) < 0) break;
                            i.push(r);
                        } else if (r < 2048) {
                            if ((e -= 2) < 0) break;
                            i.push((r >> 6) | 192, (63 & r) | 128);
                        } else if (r < 65536) {
                            if ((e -= 3) < 0) break;
                            i.push((r >> 12) | 224, ((r >> 6) & 63) | 128, (63 & r) | 128);
                        } else {
                            if (!(r < 1114112)) throw new Error('Invalid code point');
                            if ((e -= 4) < 0) break;
                            i.push((r >> 18) | 240, ((r >> 12) & 63) | 128, ((r >> 6) & 63) | 128, (63 & r) | 128);
                        }
                    }

                    return i;
                }

                function q(t) {
                    return n.toByteArray(
                        (function (t) {
                            if (
                                (t = (function (t) {
                                    return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, '');
                                })(t).replace(Y, '')).length < 2
                            )
                                return '';

                            for (; t.length % 4 != 0; ) t += '=';

                            return t;
                        })(t)
                    );
                }

                function F(t, e, r, n) {
                    for (var o = 0; o < n && !(o + r >= e.length || o >= t.length); ++o) e[o + r] = t[o];

                    return o;
                }
            }.call(this, r(1)));
        },
        function (t, e, r) {
            (function (e) {
                var n = r(2),
                    o = Object.prototype.toString,
                    i = 'function' == typeof Blob || ('undefined' != typeof Blob && '[object BlobConstructor]' === o.call(Blob)),
                    s = 'function' == typeof File || ('undefined' != typeof File && '[object FileConstructor]' === o.call(File));

                t.exports = function t(r) {
                    if (!r || 'object' != typeof r) return !1;

                    if (n(r)) {
                        for (var o = 0, a = r.length; o < a; o++) if (t(r[o])) return !0;

                        return !1;
                    }

                    if (
                        ('function' == typeof e && e.isBuffer && e.isBuffer(r)) ||
                        ('function' == typeof ArrayBuffer && r instanceof ArrayBuffer) ||
                        (i && r instanceof Blob) ||
                        (s && r instanceof File)
                    )
                        return !0;
                    if (r.toJSON && 'function' == typeof r.toJSON && 1 === arguments.length) return t(r.toJSON(), !0);

                    for (var u in r) if (Object.prototype.hasOwnProperty.call(r, u) && t(r[u])) return !0;

                    return !1;
                };
            }.call(this, r(15).Buffer));
        },
        function (t, e) {
            (e.encode = function (t) {
                var e = '';

                for (var r in t) t.hasOwnProperty(r) && (e.length && (e += '&'), (e += encodeURIComponent(r) + '=' + encodeURIComponent(t[r])));

                return e;
            }),
                (e.decode = function (t) {
                    for (var e = {}, r = t.split('&'), n = 0, o = r.length; n < o; n++) {
                        var i = r[n].split('=');
                        e[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);
                    }

                    return e;
                });
        },
        function (t, e) {
            t.exports = function (t, e) {
                for (var r = [], n = (e = e || 0) || 0; n < t.length; n++) r[n - e] = t[n];

                return r;
            };
        },
        function (t, e, r) {
            window,
                (t.exports = (function (t) {
                    var e = {};

                    function r(n) {
                        if (e[n]) return e[n].exports;
                        var o = (e[n] = {
                            i: n,
                            l: !1,
                            exports: {}
                        });
                        return t[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports;
                    }

                    return (
                        (r.m = t),
                        (r.c = e),
                        (r.d = function (t, e, n) {
                            r.o(t, e) ||
                                Object.defineProperty(t, e, {
                                    enumerable: !0,
                                    get: n
                                });
                        }),
                        (r.r = function (t) {
                            'undefined' != typeof Symbol &&
                                Symbol.toStringTag &&
                                Object.defineProperty(t, Symbol.toStringTag, {
                                    value: 'Module'
                                }),
                                Object.defineProperty(t, '__esModule', {
                                    value: !0
                                });
                        }),
                        (r.t = function (t, e) {
                            if ((1 & e && (t = r(t)), 8 & e)) return t;
                            if (4 & e && 'object' == typeof t && t && t.__esModule) return t;
                            var n = Object.create(null);
                            if (
                                (r.r(n),
                                Object.defineProperty(n, 'default', {
                                    enumerable: !0,
                                    value: t
                                }),
                                2 & e && 'string' != typeof t)
                            )
                                for (var o in t)
                                    r.d(
                                        n,
                                        o,
                                        function (e) {
                                            return t[e];
                                        }.bind(null, o)
                                    );
                            return n;
                        }),
                        (r.n = function (t) {
                            var e =
                                t && t.__esModule
                                    ? function () {
                                          return t.default;
                                      }
                                    : function () {
                                          return t;
                                      };
                            return r.d(e, 'a', e), e;
                        }),
                        (r.o = function (t, e) {
                            return Object.prototype.hasOwnProperty.call(t, e);
                        }),
                        (r.p = ''),
                        r((r.s = 29))
                    );
                })([
                    function (t, e) {
                        var r;

                        r = (function () {
                            return this;
                        })();

                        try {
                            r = r || Function('return this')() || (0, eval)('this');
                        } catch (t) {
                            'object' == typeof window && (r = window);
                        }

                        t.exports = r;
                    },
                    function (t, e, r) {
                        (function (t) {
                            var n,
                                o = r(26),
                                i = r(25),
                                s = r(19),
                                a = r(18),
                                u = r(17);
                            t && t.ArrayBuffer && (n = r(15));
                            var c = 'undefined' != typeof navigator && /Android/i.test(navigator.userAgent),
                                f = 'undefined' != typeof navigator && /PhantomJS/i.test(navigator.userAgent),
                                h = c || f;
                            e.protocol = 3;
                            var p = (e.packets = {
                                    open: 0,
                                    close: 1,
                                    ping: 2,
                                    pong: 3,
                                    message: 4,
                                    upgrade: 5,
                                    noop: 6
                                }),
                                l = o(p),
                                d = {
                                    type: 'error',
                                    data: 'parser error'
                                },
                                y = r(14);

                            function g(t, e, r) {
                                for (
                                    var n = new Array(t.length),
                                        o = a(t.length, r),
                                        i = function (t, r, o) {
                                            e(r, function (e, r) {
                                                (n[t] = r), o(e, n);
                                            });
                                        },
                                        s = 0;
                                    s < t.length;
                                    s++
                                )
                                    i(s, t[s], o);
                            }

                            (e.encodePacket = function (r, n, o, i) {
                                'function' == typeof n && ((i = n), (n = !1)), 'function' == typeof o && ((i = o), (o = null));
                                var s = void 0 === r.data ? void 0 : r.data.buffer || r.data;
                                if (t.ArrayBuffer && s instanceof ArrayBuffer)
                                    return (function (t, r, n) {
                                        if (!r) return e.encodeBase64Packet(t, n);
                                        var o = t.data,
                                            i = new Uint8Array(o),
                                            s = new Uint8Array(1 + o.byteLength);
                                        s[0] = p[t.type];

                                        for (var a = 0; a < i.length; a++) s[a + 1] = i[a];

                                        return n(s.buffer);
                                    })(r, n, i);
                                if (y && s instanceof t.Blob)
                                    return (function (t, r, n) {
                                        if (!r) return e.encodeBase64Packet(t, n);
                                        if (h)
                                            return (function (t, r, n) {
                                                if (!r) return e.encodeBase64Packet(t, n);
                                                var o = new FileReader();
                                                return (
                                                    (o.onload = function () {
                                                        (t.data = o.result), e.encodePacket(t, r, !0, n);
                                                    }),
                                                    o.readAsArrayBuffer(t.data)
                                                );
                                            })(t, r, n);
                                        var o = new Uint8Array(1);
                                        o[0] = p[t.type];
                                        var i = new y([o.buffer, t.data]);
                                        return n(i);
                                    })(r, n, i);
                                if (s && s.base64)
                                    return (function (t, r) {
                                        var n = 'b' + e.packets[t.type] + t.data.data;
                                        return r(n);
                                    })(r, i);
                                var a = p[r.type];
                                return (
                                    void 0 !== r.data &&
                                        (a += o
                                            ? u.encode(String(r.data), {
                                                  strict: !1
                                              })
                                            : String(r.data)),
                                    i('' + a)
                                );
                            }),
                                (e.encodeBase64Packet = function (r, n) {
                                    var o,
                                        i = 'b' + e.packets[r.type];

                                    if (y && r.data instanceof t.Blob) {
                                        var s = new FileReader();
                                        return (
                                            (s.onload = function () {
                                                var t = s.result.split(',')[1];
                                                n(i + t);
                                            }),
                                            s.readAsDataURL(r.data)
                                        );
                                    }

                                    try {
                                        o = String.fromCharCode.apply(null, new Uint8Array(r.data));
                                    } catch (t) {
                                        for (var a = new Uint8Array(r.data), u = new Array(a.length), c = 0; c < a.length; c++) u[c] = a[c];

                                        o = String.fromCharCode.apply(null, u);
                                    }

                                    return (i += t.btoa(o)), n(i);
                                }),
                                (e.decodePacket = function (t, r, n) {
                                    if (void 0 === t) return d;

                                    if ('string' == typeof t) {
                                        if ('b' === t.charAt(0)) return e.decodeBase64Packet(t.substr(1), r);
                                        if (
                                            n &&
                                            !1 ===
                                                (t = (function (t) {
                                                    try {
                                                        t = u.decode(t, {
                                                            strict: !1
                                                        });
                                                    } catch (t) {
                                                        return !1;
                                                    }

                                                    return t;
                                                })(t))
                                        )
                                            return d;
                                        var o = t.charAt(0);
                                        return Number(o) == o && l[o]
                                            ? t.length > 1
                                                ? {
                                                      type: l[o],
                                                      data: t.substring(1)
                                                  }
                                                : {
                                                      type: l[o]
                                                  }
                                            : d;
                                    }

                                    o = new Uint8Array(t)[0];
                                    var i = s(t, 1);
                                    return (
                                        y && 'blob' === r && (i = new y([i])),
                                        {
                                            type: l[o],
                                            data: i
                                        }
                                    );
                                }),
                                (e.decodeBase64Packet = function (t, e) {
                                    var r = l[t.charAt(0)];
                                    if (!n)
                                        return {
                                            type: r,
                                            data: {
                                                base64: !0,
                                                data: t.substr(1)
                                            }
                                        };
                                    var o = n.decode(t.substr(1));
                                    return (
                                        'blob' === e && y && (o = new y([o])),
                                        {
                                            type: r,
                                            data: o
                                        }
                                    );
                                }),
                                (e.encodePayload = function (t, r, n) {
                                    'function' == typeof r && ((n = r), (r = null));
                                    var o = i(t);
                                    return r && o
                                        ? y && !h
                                            ? e.encodePayloadAsBlob(t, n)
                                            : e.encodePayloadAsArrayBuffer(t, n)
                                        : t.length
                                        ? void g(
                                              t,
                                              function (t, n) {
                                                  e.encodePacket(t, !!o && r, !1, function (t) {
                                                      n(
                                                          null,
                                                          (function (t) {
                                                              return t.length + ':' + t;
                                                          })(t)
                                                      );
                                                  });
                                              },
                                              function (t, e) {
                                                  return n(e.join(''));
                                              }
                                          )
                                        : n('0:');
                                }),
                                (e.decodePayload = function (t, r, n) {
                                    if ('string' != typeof t) return e.decodePayloadAsBinary(t, r, n);
                                    var o;
                                    if (('function' == typeof r && ((n = r), (r = null)), '' === t)) return n(d, 0, 1);

                                    for (var i, s, a = '', u = 0, c = t.length; u < c; u++) {
                                        var f = t.charAt(u);

                                        if (':' === f) {
                                            if ('' === a || a != (i = Number(a))) return n(d, 0, 1);
                                            if (a != (s = t.substr(u + 1, i)).length) return n(d, 0, 1);

                                            if (s.length) {
                                                if (((o = e.decodePacket(s, r, !1)), d.type === o.type && d.data === o.data)) return n(d, 0, 1);
                                                if (!1 === n(o, u + i, c)) return;
                                            }

                                            (u += i), (a = '');
                                        } else a += f;
                                    }

                                    return '' !== a ? n(d, 0, 1) : void 0;
                                }),
                                (e.encodePayloadAsArrayBuffer = function (t, r) {
                                    if (!t.length) return r(new ArrayBuffer(0));
                                    g(
                                        t,
                                        function (t, r) {
                                            e.encodePacket(t, !0, !0, function (t) {
                                                return r(null, t);
                                            });
                                        },
                                        function (t, e) {
                                            var n = e.reduce(function (t, e) {
                                                    var r;
                                                    return t + (r = 'string' == typeof e ? e.length : e.byteLength).toString().length + r + 2;
                                                }, 0),
                                                o = new Uint8Array(n),
                                                i = 0;
                                            return (
                                                e.forEach(function (t) {
                                                    var e = 'string' == typeof t,
                                                        r = t;

                                                    if (e) {
                                                        for (var n = new Uint8Array(t.length), s = 0; s < t.length; s++) n[s] = t.charCodeAt(s);

                                                        r = n.buffer;
                                                    }

                                                    o[i++] = e ? 0 : 1;
                                                    var a = r.byteLength.toString();

                                                    for (s = 0; s < a.length; s++) o[i++] = parseInt(a[s]);

                                                    for (o[i++] = 255, n = new Uint8Array(r), s = 0; s < n.length; s++) o[i++] = n[s];
                                                }),
                                                r(o.buffer)
                                            );
                                        }
                                    );
                                }),
                                (e.encodePayloadAsBlob = function (t, r) {
                                    g(
                                        t,
                                        function (t, r) {
                                            e.encodePacket(t, !0, !0, function (t) {
                                                var e = new Uint8Array(1);

                                                if (((e[0] = 1), 'string' == typeof t)) {
                                                    for (var n = new Uint8Array(t.length), o = 0; o < t.length; o++) n[o] = t.charCodeAt(o);

                                                    (t = n.buffer), (e[0] = 0);
                                                }

                                                var i = (t instanceof ArrayBuffer ? t.byteLength : t.size).toString(),
                                                    s = new Uint8Array(i.length + 1);

                                                for (o = 0; o < i.length; o++) s[o] = parseInt(i[o]);

                                                if (((s[i.length] = 255), y)) {
                                                    var a = new y([e.buffer, s.buffer, t]);
                                                    r(null, a);
                                                }
                                            });
                                        },
                                        function (t, e) {
                                            return r(new y(e));
                                        }
                                    );
                                }),
                                (e.decodePayloadAsBinary = function (t, r, n) {
                                    'function' == typeof r && ((n = r), (r = null));

                                    for (var o = t, i = []; o.byteLength > 0; ) {
                                        for (var a = new Uint8Array(o), u = 0 === a[0], c = '', f = 1; 255 !== a[f]; f++) {
                                            if (c.length > 310) return n(d, 0, 1);
                                            c += a[f];
                                        }

                                        (o = s(o, 2 + c.length)), (c = parseInt(c));
                                        var h = s(o, 0, c);
                                        if (u)
                                            try {
                                                h = String.fromCharCode.apply(null, new Uint8Array(h));
                                            } catch (t) {
                                                var p = new Uint8Array(h);

                                                for (h = '', f = 0; f < p.length; f++) h += String.fromCharCode(p[f]);
                                            }
                                        i.push(h), (o = s(o, c));
                                    }

                                    var l = i.length;
                                    i.forEach(function (t, o) {
                                        n(e.decodePacket(t, r, !0), o, l);
                                    });
                                });
                        }.call(this, r(0)));
                    },
                    function (t, e) {
                        t.exports = function () {
                            return function () {};
                        };
                    },
                    function (t, e) {
                        (e.encode = function (t) {
                            var e = '';

                            for (var r in t) t.hasOwnProperty(r) && (e.length && (e += '&'), (e += encodeURIComponent(r) + '=' + encodeURIComponent(t[r])));

                            return e;
                        }),
                            (e.decode = function (t) {
                                for (var e = {}, r = t.split('&'), n = 0, o = r.length; n < o; n++) {
                                    var i = r[n].split('=');
                                    e[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);
                                }

                                return e;
                            });
                    },
                    function (t, e, r) {
                        function n(t) {
                            if (t)
                                return (function (t) {
                                    for (var e in n.prototype) t[e] = n.prototype[e];

                                    return t;
                                })(t);
                        }

                        (t.exports = n),
                            (n.prototype.on = n.prototype.addEventListener =
                                function (t, e) {
                                    return (this._callbacks = this._callbacks || {}), (this._callbacks['$' + t] = this._callbacks['$' + t] || []).push(e), this;
                                }),
                            (n.prototype.once = function (t, e) {
                                function r() {
                                    this.off(t, r), e.apply(this, arguments);
                                }

                                return (r.fn = e), this.on(t, r), this;
                            }),
                            (n.prototype.off =
                                n.prototype.removeListener =
                                n.prototype.removeAllListeners =
                                n.prototype.removeEventListener =
                                    function (t, e) {
                                        if (((this._callbacks = this._callbacks || {}), 0 == arguments.length)) return (this._callbacks = {}), this;
                                        var r,
                                            n = this._callbacks['$' + t];
                                        if (!n) return this;
                                        if (1 == arguments.length) return delete this._callbacks['$' + t], this;

                                        for (var o = 0; o < n.length; o++)
                                            if ((r = n[o]) === e || r.fn === e) {
                                                n.splice(o, 1);
                                                break;
                                            }

                                        return this;
                                    }),
                            (n.prototype.emit = function (t) {
                                this._callbacks = this._callbacks || {};
                                var e = [].slice.call(arguments, 1),
                                    r = this._callbacks['$' + t];
                                if (r) for (var n = 0, o = (r = r.slice(0)).length; n < o; ++n) r[n].apply(this, e);
                                return this;
                            }),
                            (n.prototype.listeners = function (t) {
                                return (this._callbacks = this._callbacks || {}), this._callbacks['$' + t] || [];
                            }),
                            (n.prototype.hasListeners = function (t) {
                                return !!this.listeners(t).length;
                            });
                    },
                    function (t, e, r) {
                        var n = r(1),
                            o = r(4);

                        function i(t) {
                            (this.path = t.path),
                                (this.hostname = t.hostname),
                                (this.port = t.port),
                                (this.secure = t.secure),
                                (this.query = t.query),
                                (this.timestampParam = t.timestampParam),
                                (this.timestampRequests = t.timestampRequests),
                                (this.readyState = ''),
                                (this.agent = t.agent || !1),
                                (this.socket = t.socket),
                                (this.enablesXDR = t.enablesXDR),
                                (this.pfx = t.pfx),
                                (this.key = t.key),
                                (this.passphrase = t.passphrase),
                                (this.cert = t.cert),
                                (this.ca = t.ca),
                                (this.ciphers = t.ciphers),
                                (this.rejectUnauthorized = t.rejectUnauthorized),
                                (this.forceNode = t.forceNode),
                                (this.extraHeaders = t.extraHeaders),
                                (this.localAddress = t.localAddress);
                        }

                        (t.exports = i),
                            o(i.prototype),
                            (i.prototype.onError = function (t, e) {
                                var r = new Error(t);
                                return (r.type = 'TransportError'), (r.description = e), this.emit('error', r), this;
                            }),
                            (i.prototype.open = function () {
                                return ('closed' !== this.readyState && '' !== this.readyState) || ((this.readyState = 'opening'), this.doOpen()), this;
                            }),
                            (i.prototype.close = function () {
                                return ('opening' !== this.readyState && 'open' !== this.readyState) || (this.doClose(), this.onClose()), this;
                            }),
                            (i.prototype.send = function (t) {
                                if ('open' !== this.readyState) throw new Error('Transport not open');
                                this.write(t);
                            }),
                            (i.prototype.onOpen = function () {
                                (this.readyState = 'open'), (this.writable = !0), this.emit('open');
                            }),
                            (i.prototype.onData = function (t) {
                                var e = n.decodePacket(t, this.socket.binaryType);
                                this.onPacket(e);
                            }),
                            (i.prototype.onPacket = function (t) {
                                this.emit('packet', t);
                            }),
                            (i.prototype.onClose = function () {
                                (this.readyState = 'closed'), this.emit('close');
                            });
                    },
                    function (t, e, r) {
                        var n = r(27);
                        e.websocket = n;
                    },
                    function (t, e) {
                        var r =
                                /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
                            n = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'];

                        t.exports = function (t) {
                            var e = t,
                                o = t.indexOf('['),
                                i = t.indexOf(']');
                            -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, ';') + t.substring(i, t.length));

                            for (var s = r.exec(t || ''), a = {}, u = 14; u--; ) a[n[u]] = s[u] || '';

                            return (
                                -1 != o &&
                                    -1 != i &&
                                    ((a.source = e),
                                    (a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ':')),
                                    (a.authority = a.authority.replace('[', '').replace(']', '').replace(/;/g, ':')),
                                    (a.ipv6uri = !0)),
                                a
                            );
                        };
                    },
                    function (t, e) {
                        var r = [].indexOf;

                        t.exports = function (t, e) {
                            if (r) return t.indexOf(e);

                            for (var n = 0; n < t.length; ++n) if (t[n] === e) return n;

                            return -1;
                        };
                    },
                    function (t, e, r) {
                        'use strict';

                        class n {
                            constructor(t, e) {
                                (this.target = e), (this.type = t);
                            }
                        }

                        class o extends n {
                            constructor(t, e) {
                                super('message', e), (this.data = t);
                            }
                        }

                        class i extends n {
                            constructor(t, e, r) {
                                super('close', r), (this.wasClean = r._closeFrameReceived && r._closeFrameSent), (this.reason = e), (this.code = t);
                            }
                        }

                        class s extends n {
                            constructor(t) {
                                super('open', t);
                            }
                        }

                        class a extends n {
                            constructor(t, e) {
                                super('error', e), (this.message = t.message), (this.error = t);
                            }
                        }

                        const u = {
                            addEventListener(t, e) {
                                function r(t) {
                                    e.call(this, new o(t, this));
                                }

                                function n(t, r) {
                                    e.call(this, new i(t, r, this));
                                }

                                function u(t) {
                                    e.call(this, new a(t, this));
                                }

                                function c() {
                                    e.call(this, new s(this));
                                }

                                'function' == typeof e &&
                                    ('message' === t
                                        ? ((r._listener = e), this.on(t, r))
                                        : 'close' === t
                                        ? ((n._listener = e), this.on(t, n))
                                        : 'error' === t
                                        ? ((u._listener = e), this.on(t, u))
                                        : 'open' === t
                                        ? ((c._listener = e), this.on(t, c))
                                        : this.on(t, e));
                            },

                            removeEventListener(t, e) {
                                const r = this.listeners(t);

                                for (var n = 0; n < r.length; n++) (r[n] !== e && r[n]._listener !== e) || this.removeListener(t, r[n]);
                            }
                        };
                        t.exports = u;
                    },
                    function (t, e) {
                        function r() {
                            (this._events = this._events || {}), (this._maxListeners = this._maxListeners || void 0);
                        }

                        function n(t) {
                            return 'function' == typeof t;
                        }

                        function o(t) {
                            return 'object' == typeof t && null !== t;
                        }

                        function i(t) {
                            return void 0 === t;
                        }

                        (t.exports = r),
                            (r.EventEmitter = r),
                            (r.prototype._events = void 0),
                            (r.prototype._maxListeners = void 0),
                            (r.defaultMaxListeners = 10),
                            (r.prototype.setMaxListeners = function (t) {
                                if ('number' != typeof t || t < 0 || isNaN(t)) throw TypeError('n must be a positive number');
                                return (this._maxListeners = t), this;
                            }),
                            (r.prototype.emit = function (t) {
                                var e, r, s, a, u, c;

                                if ((this._events || (this._events = {}), 'error' === t && (!this._events.error || (o(this._events.error) && !this._events.error.length)))) {
                                    if ((e = arguments[1]) instanceof Error) throw e;
                                    var f = new Error('Uncaught, unspecified "error" event. (' + e + ')');
                                    throw ((f.context = e), f);
                                }

                                if (i((r = this._events[t]))) return !1;
                                if (n(r))
                                    switch (arguments.length) {
                                        case 1:
                                            r.call(this);
                                            break;

                                        case 2:
                                            r.call(this, arguments[1]);
                                            break;

                                        case 3:
                                            r.call(this, arguments[1], arguments[2]);
                                            break;

                                        default:
                                            (a = Array.prototype.slice.call(arguments, 1)), r.apply(this, a);
                                    }
                                else if (o(r)) for (a = Array.prototype.slice.call(arguments, 1), s = (c = r.slice()).length, u = 0; u < s; u++) c[u].apply(this, a);
                                return !0;
                            }),
                            (r.prototype.addListener = function (t, e) {
                                var s;
                                if (!n(e)) throw TypeError('listener must be a function');
                                return (
                                    this._events || (this._events = {}),
                                    this._events.newListener && this.emit('newListener', t, n(e.listener) ? e.listener : e),
                                    this._events[t] ? (o(this._events[t]) ? this._events[t].push(e) : (this._events[t] = [this._events[t], e])) : (this._events[t] = e),
                                    o(this._events[t]) &&
                                        !this._events[t].warned &&
                                        (s = i(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners) &&
                                        s > 0 &&
                                        this._events[t].length > s &&
                                        ((this._events[t].warned = !0),
                                        console.error(
                                            '(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.',
                                            this._events[t].length
                                        ),
                                        'function' == typeof console.trace && console.trace()),
                                    this
                                );
                            }),
                            (r.prototype.on = r.prototype.addListener),
                            (r.prototype.once = function (t, e) {
                                if (!n(e)) throw TypeError('listener must be a function');
                                var r = !1;

                                function o() {
                                    this.removeListener(t, o), r || ((r = !0), e.apply(this, arguments));
                                }

                                return (o.listener = e), this.on(t, o), this;
                            }),
                            (r.prototype.removeListener = function (t, e) {
                                var r, i, s, a;
                                if (!n(e)) throw TypeError('listener must be a function');
                                if (!this._events || !this._events[t]) return this;
                                if (((s = (r = this._events[t]).length), (i = -1), r === e || (n(r.listener) && r.listener === e)))
                                    delete this._events[t], this._events.removeListener && this.emit('removeListener', t, e);
                                else if (o(r)) {
                                    for (a = s; a-- > 0; )
                                        if (r[a] === e || (r[a].listener && r[a].listener === e)) {
                                            i = a;
                                            break;
                                        }

                                    if (i < 0) return this;
                                    1 === r.length ? ((r.length = 0), delete this._events[t]) : r.splice(i, 1), this._events.removeListener && this.emit('removeListener', t, e);
                                }
                                return this;
                            }),
                            (r.prototype.removeAllListeners = function (t) {
                                var e, r;
                                if (!this._events) return this;
                                if (!this._events.removeListener) return 0 === arguments.length ? (this._events = {}) : this._events[t] && delete this._events[t], this;

                                if (0 === arguments.length) {
                                    for (e in this._events) 'removeListener' !== e && this.removeAllListeners(e);

                                    return this.removeAllListeners('removeListener'), (this._events = {}), this;
                                }

                                if (n((r = this._events[t]))) this.removeListener(t, r);
                                else if (r) for (; r.length; ) this.removeListener(t, r[r.length - 1]);
                                return delete this._events[t], this;
                            }),
                            (r.prototype.listeners = function (t) {
                                return this._events && this._events[t] ? (n(this._events[t]) ? [this._events[t]] : this._events[t].slice()) : [];
                            }),
                            (r.prototype.listenerCount = function (t) {
                                if (this._events) {
                                    var e = this._events[t];
                                    if (n(e)) return 1;
                                    if (e) return e.length;
                                }

                                return 0;
                            }),
                            (r.listenerCount = function (t, e) {
                                return t.listenerCount(e);
                            });
                    },
                    function (t, e, r) {
                        const n = r(10),
                            o = r(9),
                            i = r(2)('weapp-socket:'),
                            s = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];

                        class a extends n {
                            constructor(t, e, r) {
                                super(),
                                    (this.readyState = a.CONNECTING),
                                    (this.protocol = ''),
                                    (this._socket = null),
                                    null !== t &&
                                        (Array.isArray(e) ? (e = e.join(', ')) : 'object' == typeof e && null !== e && ((r = e), (e = void 0)),
                                        function (t, e, r) {
                                            Object.assign(r, {
                                                url: t,
                                                header: {
                                                    'content-type': 'application/json'
                                                },
                                                protocols: e,
                                                method: 'GET'
                                            }),
                                                (this._socket = (function (t) {
                                                    const e = uni.connectSocket(t);
                                                    return (
                                                        i('socketTask: ', e),
                                                        e || {
                                                            onClose: uni.onSocketClose,
                                                            onOpen: uni.onSocketOpen,
                                                            onError: uni.onSocketError,
                                                            onMessage: uni.onSocketMessage,
                                                            send: uni.sendSocketMessage,
                                                            close: uni.closeSocket
                                                        }
                                                    );
                                                })(r)),
                                                this.addSocketEventListeners();
                                        }.call(this, t, e, r));
                            }

                            get CONNECTING() {
                                return a.CONNECTING;
                            }

                            get CLOSING() {
                                return a.CLOSING;
                            }

                            get CLOSED() {
                                return a.CLOSED;
                            }

                            get OPEN() {
                                return a.OPEN;
                            }

                            addSocketEventListeners() {
                                this._socket.onOpen(() => {
                                    (this.readyState = a.OPEN), this.onopen();
                                }),
                                    this._socket.onClose((t) => {
                                        i('onclose: ', t), (this.readyState = a.CLOSED), this.onclose(t.code, t.reason);
                                    }),
                                    this._socket.onError((t) => {
                                        i('onerror: ', t), this.onerror(t);
                                    }),
                                    this._socket.onMessage((t) => {
                                        this.onmessage(t);
                                    });
                            }

                            send(t) {
                                i('send data: ', t, this.readyState),
                                    this.readyState === a.OPEN &&
                                        this._socket.send({
                                            data: t
                                        });
                            }

                            close(t, e) {
                                i('close socket: ', t, e),
                                    (this.readyState = a.CLOSING),
                                    this._socket.close({
                                        code: t,
                                        reason: e
                                    });
                            }
                        }

                        s.forEach((t, e) => {
                            a[s[e]] = e;
                        }),
                            ['open', 'error', 'close', 'message'].forEach((t) => {
                                Object.defineProperty(a.prototype, `on${t}`, {
                                    get() {
                                        const e = this.listeners(t);

                                        for (var r = 0; r < e.length; r++) if (e[r]._listener) return e[r]._listener;
                                    },

                                    set(e) {
                                        const r = this.listeners(t);

                                        for (var n = 0; n < r.length; n++) r[n]._listener && this.removeListener(t, r[n]);

                                        this.addEventListener(t, e);
                                    }
                                });
                            }),
                            (a.prototype.addEventListener = o.addEventListener),
                            (a.prototype.removeEventListener = o.removeEventListener),
                            (t.exports = a);
                    },
                    function (t, e, r) {
                        'use strict';

                        var n,
                            o = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''),
                            i = 64,
                            s = {},
                            a = 0,
                            u = 0;

                        function c(t) {
                            var e = '';

                            do {
                                (e = o[t % i] + e), (t = Math.floor(t / i));
                            } while (t > 0);

                            return e;
                        }

                        function f() {
                            var t = c(+new Date());
                            return t !== n ? ((a = 0), (n = t)) : t + '.' + c(a++);
                        }

                        for (; u < i; u++) s[o[u]] = u;

                        (f.encode = c),
                            (f.decode = function (t) {
                                var e = 0;

                                for (u = 0; u < t.length; u++) e = e * i + s[t.charAt(u)];

                                return e;
                            }),
                            (t.exports = f);
                    },
                    function (t, e) {
                        t.exports = function (t, e) {
                            var r = function () {};

                            (r.prototype = e.prototype), (t.prototype = new r()), (t.prototype.constructor = t);
                        };
                    },
                    function (t, e, r) {
                        (function (e) {
                            var r = e.BlobBuilder || e.WebKitBlobBuilder || e.MSBlobBuilder || e.MozBlobBuilder,
                                n = (function () {
                                    try {
                                        return 2 === new Blob(['hi']).size;
                                    } catch (t) {
                                        return !1;
                                    }
                                })(),
                                o =
                                    n &&
                                    (function () {
                                        try {
                                            return 2 === new Blob([new Uint8Array([1, 2])]).size;
                                        } catch (t) {
                                            return !1;
                                        }
                                    })(),
                                i = r && r.prototype.append && r.prototype.getBlob;

                            function s(t) {
                                for (var e = 0; e < t.length; e++) {
                                    var r = t[e];

                                    if (r.buffer instanceof ArrayBuffer) {
                                        var n = r.buffer;

                                        if (r.byteLength !== n.byteLength) {
                                            var o = new Uint8Array(r.byteLength);
                                            o.set(new Uint8Array(n, r.byteOffset, r.byteLength)), (n = o.buffer);
                                        }

                                        t[e] = n;
                                    }
                                }
                            }

                            t.exports = n
                                ? o
                                    ? e.Blob
                                    : function (t, e) {
                                          return s(t), new Blob(t, e || {});
                                      }
                                : i
                                ? function (t, e) {
                                      e = e || {};
                                      var n = new r();
                                      s(t);

                                      for (var o = 0; o < t.length; o++) n.append(t[o]);

                                      return e.type ? n.getBlob(e.type) : n.getBlob();
                                  }
                                : void 0;
                        }.call(this, r(0)));
                    },
                    function (t, e) {
                        !(function () {
                            'use strict';

                            for (var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', r = new Uint8Array(256), n = 0; n < t.length; n++)
                                r[t.charCodeAt(n)] = n;

                            (e.encode = function (e) {
                                var r,
                                    n = new Uint8Array(e),
                                    o = n.length,
                                    i = '';

                                for (r = 0; r < o; r += 3)
                                    (i += t[n[r] >> 2]), (i += t[((3 & n[r]) << 4) | (n[r + 1] >> 4)]), (i += t[((15 & n[r + 1]) << 2) | (n[r + 2] >> 6)]), (i += t[63 & n[r + 2]]);

                                return o % 3 == 2 ? (i = i.substring(0, i.length - 1) + '=') : o % 3 == 1 && (i = i.substring(0, i.length - 2) + '=='), i;
                            }),
                                (e.decode = function (t) {
                                    var e,
                                        n,
                                        o,
                                        i,
                                        s,
                                        a = 0.75 * t.length,
                                        u = t.length,
                                        c = 0;
                                    '=' === t[t.length - 1] && (a--, '=' === t[t.length - 2] && a--);
                                    var f = new ArrayBuffer(a),
                                        h = new Uint8Array(f);

                                    for (e = 0; e < u; e += 4)
                                        (n = r[t.charCodeAt(e)]),
                                            (o = r[t.charCodeAt(e + 1)]),
                                            (i = r[t.charCodeAt(e + 2)]),
                                            (s = r[t.charCodeAt(e + 3)]),
                                            (h[c++] = (n << 2) | (o >> 4)),
                                            (h[c++] = ((15 & o) << 4) | (i >> 2)),
                                            (h[c++] = ((3 & i) << 6) | (63 & s));

                                    return f;
                                });
                        })();
                    },
                    function (t, e) {
                        t.exports = function (t) {
                            return (
                                t.webpackPolyfill ||
                                    ((t.deprecate = function () {}),
                                    (t.paths = []),
                                    t.children || (t.children = []),
                                    Object.defineProperty(t, 'loaded', {
                                        enumerable: !0,
                                        get: function () {
                                            return t.l;
                                        }
                                    }),
                                    Object.defineProperty(t, 'id', {
                                        enumerable: !0,
                                        get: function () {
                                            return t.i;
                                        }
                                    }),
                                    (t.webpackPolyfill = 1)),
                                t
                            );
                        };
                    },
                    function (t, e, r) {
                        (function (t, n) {
                            var o;
                            /*! https://mths.be/utf8js v2.1.2 by @mathias */

                            !(function (i) {
                                var s = ('object' == typeof t && t && t.exports, 'object' == typeof n && n);
                                s.global !== s && s.window;
                                var a,
                                    u,
                                    c,
                                    f = String.fromCharCode;

                                function h(t) {
                                    for (var e, r, n = [], o = 0, i = t.length; o < i; )
                                        (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i
                                            ? 56320 == (64512 & (r = t.charCodeAt(o++)))
                                                ? n.push(((1023 & e) << 10) + (1023 & r) + 65536)
                                                : (n.push(e), o--)
                                            : n.push(e);

                                    return n;
                                }

                                function p(t, e) {
                                    if (t >= 55296 && t <= 57343) {
                                        if (e) throw Error('Lone surrogate U+' + t.toString(16).toUpperCase() + ' is not a scalar value');
                                        return !1;
                                    }

                                    return !0;
                                }

                                function l(t, e) {
                                    return f(((t >> e) & 63) | 128);
                                }

                                function d(t, e) {
                                    if (0 == (4294967168 & t)) return f(t);
                                    var r = '';
                                    return (
                                        0 == (4294965248 & t)
                                            ? (r = f(((t >> 6) & 31) | 192))
                                            : 0 == (4294901760 & t)
                                            ? (p(t, e) || (t = 65533), (r = f(((t >> 12) & 15) | 224)), (r += l(t, 6)))
                                            : 0 == (4292870144 & t) && ((r = f(((t >> 18) & 7) | 240)), (r += l(t, 12)), (r += l(t, 6))),
                                        (r += f((63 & t) | 128))
                                    );
                                }

                                function y() {
                                    if (c >= u) throw Error('Invalid byte index');
                                    var t = 255 & a[c];
                                    if ((c++, 128 == (192 & t))) return 63 & t;
                                    throw Error('Invalid continuation byte');
                                }

                                function g(t) {
                                    var e, r;
                                    if (c > u) throw Error('Invalid byte index');
                                    if (c == u) return !1;
                                    if (((e = 255 & a[c]), c++, 0 == (128 & e))) return e;

                                    if (192 == (224 & e)) {
                                        if ((r = ((31 & e) << 6) | y()) >= 128) return r;
                                        throw Error('Invalid continuation byte');
                                    }

                                    if (224 == (240 & e)) {
                                        if ((r = ((15 & e) << 12) | (y() << 6) | y()) >= 2048) return p(r, t) ? r : 65533;
                                        throw Error('Invalid continuation byte');
                                    }

                                    if (240 == (248 & e) && (r = ((7 & e) << 18) | (y() << 12) | (y() << 6) | y()) >= 65536 && r <= 1114111) return r;
                                    throw Error('Invalid UTF-8 detected');
                                }

                                var v = {
                                    version: '2.1.2',
                                    encode: function (t, e) {
                                        for (var r = !1 !== (e = e || {}).strict, n = h(t), o = n.length, i = -1, s = ''; ++i < o; ) s += d(n[i], r);

                                        return s;
                                    },
                                    decode: function (t, e) {
                                        var r = !1 !== (e = e || {}).strict;
                                        (a = h(t)), (u = a.length), (c = 0);

                                        for (var n, o = []; !1 !== (n = g(r)); ) o.push(n);

                                        return (function (t) {
                                            for (var e, r = t.length, n = -1, o = ''; ++n < r; )
                                                (e = t[n]) > 65535 && ((o += f((((e -= 65536) >>> 10) & 1023) | 55296)), (e = 56320 | (1023 & e))), (o += f(e));

                                            return o;
                                        })(o);
                                    }
                                };
                                void 0 ===
                                    (o = function () {
                                        return v;
                                    }.call(e, r, e, t)) || (t.exports = o);
                            })();
                        }.call(this, r(16)(t), r(0)));
                    },
                    function (t, e) {
                        function r() {}

                        t.exports = function (t, e, n) {
                            var o = !1;
                            return (n = n || r), (i.count = t), 0 === t ? e() : i;

                            function i(t, r) {
                                if (i.count <= 0) throw new Error('after called too many times');
                                --i.count, t ? ((o = !0), e(t), (e = n)) : 0 !== i.count || o || e(null, r);
                            }
                        };
                    },
                    function (t, e) {
                        t.exports = function (t, e, r) {
                            var n = t.byteLength;
                            if (((e = e || 0), (r = r || n), t.slice)) return t.slice(e, r);
                            if ((e < 0 && (e += n), r < 0 && (r += n), r > n && (r = n), e >= n || e >= r || 0 === n)) return new ArrayBuffer(0);

                            for (var o = new Uint8Array(t), i = new Uint8Array(r - e), s = e, a = 0; s < r; s++, a++) i[a] = o[s];

                            return i.buffer;
                        };
                    },
                    function (t, e) {
                        var r = {}.toString;

                        t.exports =
                            Array.isArray ||
                            function (t) {
                                return '[object Array]' == r.call(t);
                            };
                    },
                    function (t, e) {
                        var r = {}.toString;

                        t.exports =
                            Array.isArray ||
                            function (t) {
                                return '[object Array]' == r.call(t);
                            };
                    },
                    function (t, e) {
                        (e.read = function (t, e, r, n, o) {
                            var i,
                                s,
                                a = 8 * o - n - 1,
                                u = (1 << a) - 1,
                                c = u >> 1,
                                f = -7,
                                h = r ? o - 1 : 0,
                                p = r ? -1 : 1,
                                l = t[e + h];

                            for (h += p, i = l & ((1 << -f) - 1), l >>= -f, f += a; f > 0; i = 256 * i + t[e + h], h += p, f -= 8);

                            for (s = i & ((1 << -f) - 1), i >>= -f, f += n; f > 0; s = 256 * s + t[e + h], h += p, f -= 8);

                            if (0 === i) i = 1 - c;
                            else {
                                if (i === u) return s ? NaN : (1 / 0) * (l ? -1 : 1);
                                (s += Math.pow(2, n)), (i -= c);
                            }
                            return (l ? -1 : 1) * s * Math.pow(2, i - n);
                        }),
                            (e.write = function (t, e, r, n, o, i) {
                                var s,
                                    a,
                                    u,
                                    c = 8 * i - o - 1,
                                    f = (1 << c) - 1,
                                    h = f >> 1,
                                    p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
                                    l = n ? 0 : i - 1,
                                    d = n ? 1 : -1,
                                    y = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0;

                                for (
                                    e = Math.abs(e),
                                        isNaN(e) || e === 1 / 0
                                            ? ((a = isNaN(e) ? 1 : 0), (s = f))
                                            : ((s = Math.floor(Math.log(e) / Math.LN2)),
                                              e * (u = Math.pow(2, -s)) < 1 && (s--, (u *= 2)),
                                              (e += s + h >= 1 ? p / u : p * Math.pow(2, 1 - h)) * u >= 2 && (s++, (u /= 2)),
                                              s + h >= f
                                                  ? ((a = 0), (s = f))
                                                  : s + h >= 1
                                                  ? ((a = (e * u - 1) * Math.pow(2, o)), (s += h))
                                                  : ((a = e * Math.pow(2, h - 1) * Math.pow(2, o)), (s = 0)));
                                    o >= 8;
                                    t[r + l] = 255 & a, l += d, a /= 256, o -= 8
                                );

                                for (s = (s << o) | a, c += o; c > 0; t[r + l] = 255 & s, l += d, s /= 256, c -= 8);

                                t[r + l - d] |= 128 * y;
                            });
                    },
                    function (t, e, r) {
                        'use strict';

                        (e.byteLength = function (t) {
                            var e = c(t),
                                r = e[0],
                                n = e[1];
                            return (3 * (r + n)) / 4 - n;
                        }),
                            (e.toByteArray = function (t) {
                                for (var e, r = c(t), n = r[0], s = r[1], a = new i(NaN), u = 0, f = s > 0 ? n - 4 : n, h = 0; h < f; h += 4)
                                    (e = (o[t.charCodeAt(h)] << 18) | (o[t.charCodeAt(h + 1)] << 12) | (o[t.charCodeAt(h + 2)] << 6) | o[t.charCodeAt(h + 3)]),
                                        (a[u++] = (e >> 16) & 255),
                                        (a[u++] = (e >> 8) & 255),
                                        (a[u++] = 255 & e);

                                return (
                                    2 === s && ((e = (o[t.charCodeAt(h)] << 2) | (o[t.charCodeAt(h + 1)] >> 4)), (a[u++] = 255 & e)),
                                    1 === s &&
                                        ((e = (o[t.charCodeAt(h)] << 10) | (o[t.charCodeAt(h + 1)] << 4) | (o[t.charCodeAt(h + 2)] >> 2)),
                                        (a[u++] = (e >> 8) & 255),
                                        (a[u++] = 255 & e)),
                                    a
                                );
                            }),
                            (e.fromByteArray = function (t) {
                                for (var e, r = t.length, o = r % 3, i = [], s = 0, a = r - o; s < a; s += 16383) i.push(f(t, s, s + 16383 > a ? a : s + 16383));

                                return (
                                    1 === o
                                        ? ((e = t[r - 1]), i.push(n[e >> 2] + n[(e << 4) & 63] + '=='))
                                        : 2 === o && ((e = (t[r - 2] << 8) + t[r - 1]), i.push(n[e >> 10] + n[(e >> 4) & 63] + n[(e << 2) & 63] + '=')),
                                    i.join('')
                                );
                            });

                        for (
                            var n = [],
                                o = [],
                                i = 'undefined' != typeof Uint8Array ? Uint8Array : Array,
                                s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
                                a = 0,
                                u = s.length;
                            a < u;
                            ++a
                        )
                            (n[a] = s[a]), (o[s.charCodeAt(a)] = a);

                        function c(t) {
                            var e = t.length;
                            if (e % 4 > 0) throw new Error('Invalid string. Length must be a multiple of 4');
                            var r = t.indexOf('=');
                            return -1 === r && (r = e), [r, r === e ? 0 : 4 - (r % 4)];
                        }

                        function f(t, e, r) {
                            for (var o, i, s = [], a = e; a < r; a += 3)
                                (o = ((t[a] << 16) & 16711680) + ((t[a + 1] << 8) & 65280) + (255 & t[a + 2])),
                                    s.push(n[((i = o) >> 18) & 63] + n[(i >> 12) & 63] + n[(i >> 6) & 63] + n[63 & i]);

                            return s.join('');
                        }

                        (o['-'.charCodeAt(0)] = 62), (o['_'.charCodeAt(0)] = 63);
                    },
                    function (t, e, r) {
                        'use strict';

                        (function (t) {
                            /*!
                             * The buffer module from node.js, for the browser.
                             *
                             * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
                             * @license  MIT
                             */
                            var n = r(23),
                                o = r(22),
                                i = r(21);

                            function s() {
                                return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
                            }

                            function a(t, e) {
                                if (s() < e) throw new RangeError('Invalid typed array length');
                                return u.TYPED_ARRAY_SUPPORT ? ((t = new Uint8Array(e)).__proto__ = u.prototype) : (null === t && (t = new u(e)), (t.length = e)), t;
                            }

                            function u(t, e, r) {
                                if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);

                                if ('number' == typeof t) {
                                    if ('string' == typeof e) throw new Error('If encoding is specified then the first argument must be a string');
                                    return h(this, t);
                                }

                                return c(this, t, e, r);
                            }

                            function c(t, e, r, n) {
                                if ('number' == typeof e) throw new TypeError('"value" argument must not be a number');
                                return 'undefined' != typeof ArrayBuffer && e instanceof ArrayBuffer
                                    ? (function (t, e, r, n) {
                                          if ((e.byteLength, r < 0 || e.byteLength < r)) throw new RangeError("'offset' is out of bounds");
                                          if (e.byteLength < r + (n || 0)) throw new RangeError("'length' is out of bounds");
                                          return (
                                              (e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n)),
                                              u.TYPED_ARRAY_SUPPORT ? ((t = e).__proto__ = u.prototype) : (t = p(t, e)),
                                              t
                                          );
                                      })(t, e, r, n)
                                    : 'string' == typeof e
                                    ? (function (t, e, r) {
                                          if ((('string' == typeof r && '' !== r) || (r = 'utf8'), !u.isEncoding(r)))
                                              throw new TypeError('"encoding" must be a valid string encoding');
                                          var n = 0 | d(e, r),
                                              o = (t = a(t, n)).write(e, r);
                                          return o !== n && (t = t.slice(0, o)), t;
                                      })(t, e, r)
                                    : (function (t, e) {
                                          if (u.isBuffer(e)) {
                                              var r = 0 | l(e.length);
                                              return 0 === (t = a(t, r)).length ? t : (e.copy(t, 0, 0, r), t);
                                          }

                                          if (e) {
                                              if (('undefined' != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer) || 'length' in e)
                                                  return 'number' != typeof e.length || (n = e.length) != n ? a(t, 0) : p(t, e);
                                              if ('Buffer' === e.type && i(e.data)) return p(t, e.data);
                                          }

                                          var n;
                                          throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');
                                      })(t, e);
                            }

                            function f(t) {
                                if ('number' != typeof t) throw new TypeError('"size" argument must be a number');
                                if (t < 0) throw new RangeError('"size" argument must not be negative');
                            }

                            function h(t, e) {
                                if ((f(e), (t = a(t, e < 0 ? 0 : 0 | l(e))), !u.TYPED_ARRAY_SUPPORT)) for (var r = 0; r < e; ++r) t[r] = 0;
                                return t;
                            }

                            function p(t, e) {
                                var r = e.length < 0 ? 0 : 0 | l(e.length);
                                t = a(t, r);

                                for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];

                                return t;
                            }

                            function l(t) {
                                if (t >= s()) throw new RangeError('Attempt to allocate Buffer larger than maximum size: 0x' + s().toString(16) + ' bytes');
                                return 0 | t;
                            }

                            function d(t, e) {
                                if (u.isBuffer(t)) return t.length;
                                if ('undefined' != typeof ArrayBuffer && 'function' == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer))
                                    return t.byteLength;
                                'string' != typeof t && (t = '' + t);
                                var r = t.length;
                                if (0 === r) return 0;

                                for (var n = !1; ; )
                                    switch (e) {
                                        case 'ascii':
                                        case 'latin1':
                                        case 'binary':
                                            return r;

                                        case 'utf8':
                                        case 'utf-8':
                                        case void 0:
                                            return j(t).length;

                                        case 'ucs2':
                                        case 'ucs-2':
                                        case 'utf16le':
                                        case 'utf-16le':
                                            return 2 * r;

                                        case 'hex':
                                            return r >>> 1;

                                        case 'base64':
                                            return q(t).length;

                                        default:
                                            if (n) return j(t).length;
                                            (e = ('' + e).toLowerCase()), (n = !0);
                                    }
                            }

                            function y(t, e, r) {
                                var n = t[e];
                                (t[e] = t[r]), (t[r] = n);
                            }

                            function g(t, e, r, n, o) {
                                if (0 === t.length) return -1;

                                if (
                                    ('string' == typeof r ? ((n = r), (r = 0)) : r > 2147483647 ? (r = 2147483647) : r < -2147483648 && (r = -2147483648),
                                    (r = +r),
                                    isNaN(r) && (r = o ? 0 : t.length - 1),
                                    r < 0 && (r = t.length + r),
                                    r >= t.length)
                                ) {
                                    if (o) return -1;
                                    r = t.length - 1;
                                } else if (r < 0) {
                                    if (!o) return -1;
                                    r = 0;
                                }

                                if (('string' == typeof e && (e = u.from(e, n)), u.isBuffer(e))) return 0 === e.length ? -1 : v(t, e, r, n, o);
                                if ('number' == typeof e)
                                    return (
                                        (e &= 255),
                                        u.TYPED_ARRAY_SUPPORT && 'function' == typeof Uint8Array.prototype.indexOf
                                            ? o
                                                ? Uint8Array.prototype.indexOf.call(t, e, r)
                                                : Uint8Array.prototype.lastIndexOf.call(t, e, r)
                                            : v(t, [e], r, n, o)
                                    );
                                throw new TypeError('val must be string, number or Buffer');
                            }

                            function v(t, e, r, n, o) {
                                var i,
                                    s = 1,
                                    a = t.length,
                                    u = e.length;

                                if (void 0 !== n && ('ucs2' === (n = String(n).toLowerCase()) || 'ucs-2' === n || 'utf16le' === n || 'utf-16le' === n)) {
                                    if (t.length < 2 || e.length < 2) return -1;
                                    (s = 2), (a /= 2), (u /= 2), (r /= 2);
                                }

                                function c(t, e) {
                                    return 1 === s ? t[e] : t.readUInt16BE(e * s);
                                }

                                if (o) {
                                    var f = -1;

                                    for (i = r; i < a; i++)
                                        if (c(t, i) === c(e, -1 === f ? 0 : i - f)) {
                                            if ((-1 === f && (f = i), i - f + 1 === u)) return f * s;
                                        } else -1 !== f && (i -= i - f), (f = -1);
                                } else
                                    for (r + u > a && (r = a - u), i = r; i >= 0; i--) {
                                        for (var h = !0, p = 0; p < u; p++)
                                            if (c(t, i + p) !== c(e, p)) {
                                                h = !1;
                                                break;
                                            }

                                        if (h) return i;
                                    }

                                return -1;
                            }

                            function b(t, e, r, n) {
                                r = Number(r) || 0;
                                var o = t.length - r;
                                n ? (n = Number(n)) > o && (n = o) : (n = o);
                                var i = e.length;
                                if (i % 2 != 0) throw new TypeError('Invalid hex string');
                                n > i / 2 && (n = i / 2);

                                for (var s = 0; s < n; ++s) {
                                    var a = parseInt(e.substr(2 * s, 2), 16);
                                    if (isNaN(a)) return s;
                                    t[r + s] = a;
                                }

                                return s;
                            }

                            function m(t, e, r, n) {
                                return F(j(e, t.length - r), t, r, n);
                            }

                            function w(t, e, r, n) {
                                return F(
                                    (function (t) {
                                        for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));

                                        return e;
                                    })(e),
                                    t,
                                    r,
                                    n
                                );
                            }

                            function A(t, e, r, n) {
                                return w(t, e, r, n);
                            }

                            function _(t, e, r, n) {
                                return F(q(e), t, r, n);
                            }

                            function E(t, e, r, n) {
                                return F(
                                    (function (t, e) {
                                        for (var r, n, o, i = [], s = 0; s < t.length && !((e -= 2) < 0); ++s)
                                            (r = t.charCodeAt(s)), (n = r >> 8), (o = r % 256), i.push(o), i.push(n);

                                        return i;
                                    })(e, t.length - r),
                                    t,
                                    r,
                                    n
                                );
                            }

                            function k(t, e, r) {
                                return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));
                            }

                            function B(t, e, r) {
                                r = Math.min(t.length, r);

                                for (var n = [], o = e; o < r; ) {
                                    var i,
                                        s,
                                        a,
                                        u,
                                        c = t[o],
                                        f = null,
                                        h = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;
                                    if (o + h <= r)
                                        switch (h) {
                                            case 1:
                                                c < 128 && (f = c);
                                                break;

                                            case 2:
                                                128 == (192 & (i = t[o + 1])) && (u = ((31 & c) << 6) | (63 & i)) > 127 && (f = u);
                                                break;

                                            case 3:
                                                (i = t[o + 1]),
                                                    (s = t[o + 2]),
                                                    128 == (192 & i) &&
                                                        128 == (192 & s) &&
                                                        (u = ((15 & c) << 12) | ((63 & i) << 6) | (63 & s)) > 2047 &&
                                                        (u < 55296 || u > 57343) &&
                                                        (f = u);
                                                break;

                                            case 4:
                                                (i = t[o + 1]),
                                                    (s = t[o + 2]),
                                                    (a = t[o + 3]),
                                                    128 == (192 & i) &&
                                                        128 == (192 & s) &&
                                                        128 == (192 & a) &&
                                                        (u = ((15 & c) << 18) | ((63 & i) << 12) | ((63 & s) << 6) | (63 & a)) > 65535 &&
                                                        u < 1114112 &&
                                                        (f = u);
                                        }
                                    null === f ? ((f = 65533), (h = 1)) : f > 65535 && ((f -= 65536), n.push(((f >>> 10) & 1023) | 55296), (f = 56320 | (1023 & f))),
                                        n.push(f),
                                        (o += h);
                                }

                                return (function (t) {
                                    var e = t.length;
                                    if (e <= R) return String.fromCharCode.apply(String, t);

                                    for (var r = '', n = 0; n < e; ) r += String.fromCharCode.apply(String, t.slice(n, (n += R)));

                                    return r;
                                })(n);
                            }

                            (e.Buffer = u),
                                (e.SlowBuffer = function (t) {
                                    return +t != t && (t = 0), u.alloc(+t);
                                }),
                                (e.INSPECT_MAX_BYTES = 50),
                                (u.TYPED_ARRAY_SUPPORT =
                                    void 0 !== t.TYPED_ARRAY_SUPPORT
                                        ? t.TYPED_ARRAY_SUPPORT
                                        : (function () {
                                              try {
                                                  var t = new Uint8Array(1);
                                                  return (
                                                      (t.__proto__ = {
                                                          __proto__: Uint8Array.prototype,
                                                          foo: function () {
                                                              return 42;
                                                          }
                                                      }),
                                                      42 === t.foo() && 'function' == typeof t.subarray && 0 === t.subarray(1, 1).byteLength
                                                  );
                                              } catch (t) {
                                                  return !1;
                                              }
                                          })()),
                                (e.kMaxLength = s()),
                                (u.poolSize = 8192),
                                (u._augment = function (t) {
                                    return (t.__proto__ = u.prototype), t;
                                }),
                                (u.from = function (t, e, r) {
                                    return c(null, t, e, r);
                                }),
                                u.TYPED_ARRAY_SUPPORT &&
                                    ((u.prototype.__proto__ = Uint8Array.prototype),
                                    (u.__proto__ = Uint8Array),
                                    'undefined' != typeof Symbol &&
                                        Symbol.species &&
                                        u[Symbol.species] === u &&
                                        Object.defineProperty(u, Symbol.species, {
                                            value: null,
                                            configurable: !0
                                        })),
                                (u.alloc = function (t, e, r) {
                                    return (function (t, e, r, n) {
                                        return f(e), e <= 0 ? a(t, e) : void 0 !== r ? ('string' == typeof n ? a(t, e).fill(r, n) : a(t, e).fill(r)) : a(t, e);
                                    })(null, t, e, r);
                                }),
                                (u.allocUnsafe = function (t) {
                                    return h(null, t);
                                }),
                                (u.allocUnsafeSlow = function (t) {
                                    return h(null, t);
                                }),
                                (u.isBuffer = function (t) {
                                    return !(null == t || !t._isBuffer);
                                }),
                                (u.compare = function (t, e) {
                                    if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError('Arguments must be Buffers');
                                    if (t === e) return 0;

                                    for (var r = t.length, n = e.length, o = 0, i = Math.min(r, n); o < i; ++o)
                                        if (t[o] !== e[o]) {
                                            (r = t[o]), (n = e[o]);
                                            break;
                                        }

                                    return r < n ? -1 : n < r ? 1 : 0;
                                }),
                                (u.isEncoding = function (t) {
                                    switch (String(t).toLowerCase()) {
                                        case 'hex':
                                        case 'utf8':
                                        case 'utf-8':
                                        case 'ascii':
                                        case 'latin1':
                                        case 'binary':
                                        case 'base64':
                                        case 'ucs2':
                                        case 'ucs-2':
                                        case 'utf16le':
                                        case 'utf-16le':
                                            return !0;

                                        default:
                                            return !1;
                                    }
                                }),
                                (u.concat = function (t, e) {
                                    if (!i(t)) throw new TypeError('"list" argument must be an Array of Buffers');
                                    if (0 === t.length) return u.alloc(0);
                                    var r;
                                    if (void 0 === e) for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
                                    var n = u.allocUnsafe(e),
                                        o = 0;

                                    for (r = 0; r < t.length; ++r) {
                                        var s = t[r];
                                        if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers');
                                        s.copy(n, o), (o += s.length);
                                    }

                                    return n;
                                }),
                                (u.byteLength = d),
                                (u.prototype._isBuffer = !0),
                                (u.prototype.swap16 = function () {
                                    var t = this.length;
                                    if (t % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits');

                                    for (var e = 0; e < t; e += 2) y(this, e, e + 1);

                                    return this;
                                }),
                                (u.prototype.swap32 = function () {
                                    var t = this.length;
                                    if (t % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits');

                                    for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2);

                                    return this;
                                }),
                                (u.prototype.swap64 = function () {
                                    var t = this.length;
                                    if (t % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits');

                                    for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);

                                    return this;
                                }),
                                (u.prototype.toString = function () {
                                    var t = 0 | this.length;
                                    return 0 === t
                                        ? ''
                                        : 0 === arguments.length
                                        ? B(this, 0, t)
                                        : function (t, e, r) {
                                              var n = !1;
                                              if (((void 0 === e || e < 0) && (e = 0), e > this.length)) return '';
                                              if (((void 0 === r || r > this.length) && (r = this.length), r <= 0)) return '';
                                              if ((r >>>= 0) <= (e >>>= 0)) return '';

                                              for (t || (t = 'utf8'); ; )
                                                  switch (t) {
                                                      case 'hex':
                                                          return T(this, e, r);

                                                      case 'utf8':
                                                      case 'utf-8':
                                                          return B(this, e, r);

                                                      case 'ascii':
                                                          return P(this, e, r);

                                                      case 'latin1':
                                                      case 'binary':
                                                          return S(this, e, r);

                                                      case 'base64':
                                                          return k(this, e, r);

                                                      case 'ucs2':
                                                      case 'ucs-2':
                                                      case 'utf16le':
                                                      case 'utf-16le':
                                                          return O(this, e, r);

                                                      default:
                                                          if (n) throw new TypeError('Unknown encoding: ' + t);
                                                          (t = (t + '').toLowerCase()), (n = !0);
                                                  }
                                          }.apply(this, arguments);
                                }),
                                (u.prototype.equals = function (t) {
                                    if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer');
                                    return this === t || 0 === u.compare(this, t);
                                }),
                                (u.prototype.inspect = function () {
                                    var t = '',
                                        r = e.INSPECT_MAX_BYTES;
                                    return this.length > 0 && ((t = this.toString('hex', 0, r).match(/.{2}/g).join(' ')), this.length > r && (t += ' ... ')), '<Buffer ' + t + '>';
                                }),
                                (u.prototype.compare = function (t, e, r, n, o) {
                                    if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer');
                                    if (
                                        (void 0 === e && (e = 0),
                                        void 0 === r && (r = t ? t.length : 0),
                                        void 0 === n && (n = 0),
                                        void 0 === o && (o = this.length),
                                        e < 0 || r > t.length || n < 0 || o > this.length)
                                    )
                                        throw new RangeError('out of range index');
                                    if (n >= o && e >= r) return 0;
                                    if (n >= o) return -1;
                                    if (e >= r) return 1;
                                    if (((e >>>= 0), (r >>>= 0), (n >>>= 0), (o >>>= 0), this === t)) return 0;

                                    for (var i = o - n, s = r - e, a = Math.min(i, s), c = this.slice(n, o), f = t.slice(e, r), h = 0; h < a; ++h)
                                        if (c[h] !== f[h]) {
                                            (i = c[h]), (s = f[h]);
                                            break;
                                        }

                                    return i < s ? -1 : s < i ? 1 : 0;
                                }),
                                (u.prototype.includes = function (t, e, r) {
                                    return -1 !== this.indexOf(t, e, r);
                                }),
                                (u.prototype.indexOf = function (t, e, r) {
                                    return g(this, t, e, r, !0);
                                }),
                                (u.prototype.lastIndexOf = function (t, e, r) {
                                    return g(this, t, e, r, !1);
                                }),
                                (u.prototype.write = function (t, e, r, n) {
                                    if (void 0 === e) (n = 'utf8'), (r = this.length), (e = 0);
                                    else if (void 0 === r && 'string' == typeof e) (n = e), (r = this.length), (e = 0);
                                    else {
                                        if (!isFinite(e)) throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');
                                        (e |= 0), isFinite(r) ? ((r |= 0), void 0 === n && (n = 'utf8')) : ((n = r), (r = void 0));
                                    }
                                    var o = this.length - e;
                                    if (((void 0 === r || r > o) && (r = o), (t.length > 0 && (r < 0 || e < 0)) || e > this.length))
                                        throw new RangeError('Attempt to write outside buffer bounds');
                                    n || (n = 'utf8');

                                    for (var i = !1; ; )
                                        switch (n) {
                                            case 'hex':
                                                return b(this, t, e, r);

                                            case 'utf8':
                                            case 'utf-8':
                                                return m(this, t, e, r);

                                            case 'ascii':
                                                return w(this, t, e, r);

                                            case 'latin1':
                                            case 'binary':
                                                return A(this, t, e, r);

                                            case 'base64':
                                                return _(this, t, e, r);

                                            case 'ucs2':
                                            case 'ucs-2':
                                            case 'utf16le':
                                            case 'utf-16le':
                                                return E(this, t, e, r);

                                            default:
                                                if (i) throw new TypeError('Unknown encoding: ' + n);
                                                (n = ('' + n).toLowerCase()), (i = !0);
                                        }
                                }),
                                (u.prototype.toJSON = function () {
                                    return {
                                        type: 'Buffer',
                                        data: Array.prototype.slice.call(this._arr || this, 0)
                                    };
                                });
                            var R = 4096;

                            function P(t, e, r) {
                                var n = '';
                                r = Math.min(t.length, r);

                                for (var o = e; o < r; ++o) n += String.fromCharCode(127 & t[o]);

                                return n;
                            }

                            function S(t, e, r) {
                                var n = '';
                                r = Math.min(t.length, r);

                                for (var o = e; o < r; ++o) n += String.fromCharCode(t[o]);

                                return n;
                            }

                            function T(t, e, r) {
                                var n = t.length;
                                (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);

                                for (var o = '', i = e; i < r; ++i) o += D(t[i]);

                                return o;
                            }

                            function O(t, e, r) {
                                for (var n = t.slice(e, r), o = '', i = 0; i < n.length; i += 2) o += String.fromCharCode(n[i] + 256 * n[i + 1]);

                                return o;
                            }

                            function x(t, e, r) {
                                if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint');
                                if (t + e > r) throw new RangeError('Trying to access beyond buffer length');
                            }

                            function C(t, e, r, n, o, i) {
                                if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
                                if (e > o || e < i) throw new RangeError('"value" argument is out of bounds');
                                if (r + n > t.length) throw new RangeError('Index out of range');
                            }

                            function U(t, e, r, n) {
                                e < 0 && (e = 65535 + e + 1);

                                for (var o = 0, i = Math.min(t.length - r, 2); o < i; ++o) t[r + o] = (e & (255 << (8 * (n ? o : 1 - o)))) >>> (8 * (n ? o : 1 - o));
                            }

                            function L(t, e, r, n) {
                                e < 0 && (e = 4294967295 + e + 1);

                                for (var o = 0, i = Math.min(t.length - r, 4); o < i; ++o) t[r + o] = (e >>> (8 * (n ? o : 3 - o))) & 255;
                            }

                            function I(t, e, r, n, o, i) {
                                if (r + n > t.length) throw new RangeError('Index out of range');
                                if (r < 0) throw new RangeError('Index out of range');
                            }

                            function N(t, e, r, n, i) {
                                return i || I(t, 0, r, 4), o.write(t, e, r, n, 23, 4), r + 4;
                            }

                            function M(t, e, r, n, i) {
                                return i || I(t, 0, r, 8), o.write(t, e, r, n, 52, 8), r + 8;
                            }

                            (u.prototype.slice = function (t, e) {
                                var r,
                                    n = this.length;
                                if (
                                    ((t = ~~t),
                                    (e = void 0 === e ? n : ~~e),
                                    t < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n),
                                    e < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n),
                                    e < t && (e = t),
                                    u.TYPED_ARRAY_SUPPORT)
                                )
                                    (r = this.subarray(t, e)).__proto__ = u.prototype;
                                else {
                                    var o = e - t;
                                    r = new u(o, void 0);

                                    for (var i = 0; i < o; ++i) r[i] = this[i + t];
                                }
                                return r;
                            }),
                                (u.prototype.readUIntLE = function (t, e, r) {
                                    (t |= 0), (e |= 0), r || x(t, e, this.length);

                                    for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256); ) n += this[t + i] * o;

                                    return n;
                                }),
                                (u.prototype.readUIntBE = function (t, e, r) {
                                    (t |= 0), (e |= 0), r || x(t, e, this.length);

                                    for (var n = this[t + --e], o = 1; e > 0 && (o *= 256); ) n += this[t + --e] * o;

                                    return n;
                                }),
                                (u.prototype.readUInt8 = function (t, e) {
                                    return e || x(t, 1, this.length), this[t];
                                }),
                                (u.prototype.readUInt16LE = function (t, e) {
                                    return e || x(t, 2, this.length), this[t] | (this[t + 1] << 8);
                                }),
                                (u.prototype.readUInt16BE = function (t, e) {
                                    return e || x(t, 2, this.length), (this[t] << 8) | this[t + 1];
                                }),
                                (u.prototype.readUInt32LE = function (t, e) {
                                    return e || x(t, 4, this.length), (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + 16777216 * this[t + 3];
                                }),
                                (u.prototype.readUInt32BE = function (t, e) {
                                    return e || x(t, 4, this.length), 16777216 * this[t] + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]);
                                }),
                                (u.prototype.readIntLE = function (t, e, r) {
                                    (t |= 0), (e |= 0), r || x(t, e, this.length);

                                    for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256); ) n += this[t + i] * o;

                                    return n >= (o *= 128) && (n -= Math.pow(2, 8 * e)), n;
                                }),
                                (u.prototype.readIntBE = function (t, e, r) {
                                    (t |= 0), (e |= 0), r || x(t, e, this.length);

                                    for (var n = e, o = 1, i = this[t + --n]; n > 0 && (o *= 256); ) i += this[t + --n] * o;

                                    return i >= (o *= 128) && (i -= Math.pow(2, 8 * e)), i;
                                }),
                                (u.prototype.readInt8 = function (t, e) {
                                    return e || x(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];
                                }),
                                (u.prototype.readInt16LE = function (t, e) {
                                    e || x(t, 2, this.length);
                                    var r = this[t] | (this[t + 1] << 8);
                                    return 32768 & r ? 4294901760 | r : r;
                                }),
                                (u.prototype.readInt16BE = function (t, e) {
                                    e || x(t, 2, this.length);
                                    var r = this[t + 1] | (this[t] << 8);
                                    return 32768 & r ? 4294901760 | r : r;
                                }),
                                (u.prototype.readInt32LE = function (t, e) {
                                    return e || x(t, 4, this.length), this[t] | (this[t + 1] << 8) | (this[t + 2] << 16) | (this[t + 3] << 24);
                                }),
                                (u.prototype.readInt32BE = function (t, e) {
                                    return e || x(t, 4, this.length), (this[t] << 24) | (this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3];
                                }),
                                (u.prototype.readFloatLE = function (t, e) {
                                    return e || x(t, 4, this.length), o.read(this, t, !0, 23, 4);
                                }),
                                (u.prototype.readFloatBE = function (t, e) {
                                    return e || x(t, 4, this.length), o.read(this, t, !1, 23, 4);
                                }),
                                (u.prototype.readDoubleLE = function (t, e) {
                                    return e || x(t, 8, this.length), o.read(this, t, !0, 52, 8);
                                }),
                                (u.prototype.readDoubleBE = function (t, e) {
                                    return e || x(t, 8, this.length), o.read(this, t, !1, 52, 8);
                                }),
                                (u.prototype.writeUIntLE = function (t, e, r, n) {
                                    (t = +t), (e |= 0), (r |= 0), n || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
                                    var o = 1,
                                        i = 0;

                                    for (this[e] = 255 & t; ++i < r && (o *= 256); ) this[e + i] = (t / o) & 255;

                                    return e + r;
                                }),
                                (u.prototype.writeUIntBE = function (t, e, r, n) {
                                    (t = +t), (e |= 0), (r |= 0), n || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
                                    var o = r - 1,
                                        i = 1;

                                    for (this[e + o] = 255 & t; --o >= 0 && (i *= 256); ) this[e + o] = (t / i) & 255;

                                    return e + r;
                                }),
                                (u.prototype.writeUInt8 = function (t, e, r) {
                                    return (t = +t), (e |= 0), r || C(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), (this[e] = 255 & t), e + 1;
                                }),
                                (u.prototype.writeUInt16LE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 2, 65535, 0),
                                        u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : U(this, t, e, !0),
                                        e + 2
                                    );
                                }),
                                (u.prototype.writeUInt16BE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 2, 65535, 0),
                                        u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : U(this, t, e, !1),
                                        e + 2
                                    );
                                }),
                                (u.prototype.writeUInt32LE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 4, 4294967295, 0),
                                        u.TYPED_ARRAY_SUPPORT
                                            ? ((this[e + 3] = t >>> 24), (this[e + 2] = t >>> 16), (this[e + 1] = t >>> 8), (this[e] = 255 & t))
                                            : L(this, t, e, !0),
                                        e + 4
                                    );
                                }),
                                (u.prototype.writeUInt32BE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 4, 4294967295, 0),
                                        u.TYPED_ARRAY_SUPPORT
                                            ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t))
                                            : L(this, t, e, !1),
                                        e + 4
                                    );
                                }),
                                (u.prototype.writeIntLE = function (t, e, r, n) {
                                    if (((t = +t), (e |= 0), !n)) {
                                        var o = Math.pow(2, 8 * r - 1);
                                        C(this, t, e, r, o - 1, -o);
                                    }

                                    var i = 0,
                                        s = 1,
                                        a = 0;

                                    for (this[e] = 255 & t; ++i < r && (s *= 256); )
                                        t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1), (this[e + i] = (((t / s) >> 0) - a) & 255);

                                    return e + r;
                                }),
                                (u.prototype.writeIntBE = function (t, e, r, n) {
                                    if (((t = +t), (e |= 0), !n)) {
                                        var o = Math.pow(2, 8 * r - 1);
                                        C(this, t, e, r, o - 1, -o);
                                    }

                                    var i = r - 1,
                                        s = 1,
                                        a = 0;

                                    for (this[e + i] = 255 & t; --i >= 0 && (s *= 256); )
                                        t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1), (this[e + i] = (((t / s) >> 0) - a) & 255);

                                    return e + r;
                                }),
                                (u.prototype.writeInt8 = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 1, 127, -128),
                                        u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)),
                                        t < 0 && (t = 255 + t + 1),
                                        (this[e] = 255 & t),
                                        e + 1
                                    );
                                }),
                                (u.prototype.writeInt16LE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 2, 32767, -32768),
                                        u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : U(this, t, e, !0),
                                        e + 2
                                    );
                                }),
                                (u.prototype.writeInt16BE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 2, 32767, -32768),
                                        u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : U(this, t, e, !1),
                                        e + 2
                                    );
                                }),
                                (u.prototype.writeInt32LE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 4, 2147483647, -2147483648),
                                        u.TYPED_ARRAY_SUPPORT
                                            ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8), (this[e + 2] = t >>> 16), (this[e + 3] = t >>> 24))
                                            : L(this, t, e, !0),
                                        e + 4
                                    );
                                }),
                                (u.prototype.writeInt32BE = function (t, e, r) {
                                    return (
                                        (t = +t),
                                        (e |= 0),
                                        r || C(this, t, e, 4, 2147483647, -2147483648),
                                        t < 0 && (t = 4294967295 + t + 1),
                                        u.TYPED_ARRAY_SUPPORT
                                            ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t))
                                            : L(this, t, e, !1),
                                        e + 4
                                    );
                                }),
                                (u.prototype.writeFloatLE = function (t, e, r) {
                                    return N(this, t, e, !0, r);
                                }),
                                (u.prototype.writeFloatBE = function (t, e, r) {
                                    return N(this, t, e, !1, r);
                                }),
                                (u.prototype.writeDoubleLE = function (t, e, r) {
                                    return M(this, t, e, !0, r);
                                }),
                                (u.prototype.writeDoubleBE = function (t, e, r) {
                                    return M(this, t, e, !1, r);
                                }),
                                (u.prototype.copy = function (t, e, r, n) {
                                    if ((r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t.length), e || (e = 0), n > 0 && n < r && (n = r), n === r))
                                        return 0;
                                    if (0 === t.length || 0 === this.length) return 0;
                                    if (e < 0) throw new RangeError('targetStart out of bounds');
                                    if (r < 0 || r >= this.length) throw new RangeError('sourceStart out of bounds');
                                    if (n < 0) throw new RangeError('sourceEnd out of bounds');
                                    n > this.length && (n = this.length), t.length - e < n - r && (n = t.length - e + r);
                                    var o,
                                        i = n - r;
                                    if (this === t && r < e && e < n) for (o = i - 1; o >= 0; --o) t[o + e] = this[o + r];
                                    else if (i < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < i; ++o) t[o + e] = this[o + r];
                                    else Uint8Array.prototype.set.call(t, this.subarray(r, r + i), e);
                                    return i;
                                }),
                                (u.prototype.fill = function (t, e, r, n) {
                                    if ('string' == typeof t) {
                                        if (('string' == typeof e ? ((n = e), (e = 0), (r = this.length)) : 'string' == typeof r && ((n = r), (r = this.length)), 1 === t.length)) {
                                            var o = t.charCodeAt(0);
                                            o < 256 && (t = o);
                                        }

                                        if (void 0 !== n && 'string' != typeof n) throw new TypeError('encoding must be a string');
                                        if ('string' == typeof n && !u.isEncoding(n)) throw new TypeError('Unknown encoding: ' + n);
                                    } else 'number' == typeof t && (t &= 255);

                                    if (e < 0 || this.length < e || this.length < r) throw new RangeError('Out of range index');
                                    if (r <= e) return this;
                                    var i;
                                    if (((e >>>= 0), (r = void 0 === r ? this.length : r >>> 0), t || (t = 0), 'number' == typeof t)) for (i = e; i < r; ++i) this[i] = t;
                                    else {
                                        var s = u.isBuffer(t) ? t : j(new u(t, n).toString()),
                                            a = s.length;

                                        for (i = 0; i < r - e; ++i) this[i + e] = s[i % a];
                                    }
                                    return this;
                                });
                            var Y = /[^+\/0-9A-Za-z-_]/g;

                            function D(t) {
                                return t < 16 ? '0' + t.toString(16) : t.toString(16);
                            }

                            function j(t, e) {
                                var r;
                                e = e || 1 / 0;

                                for (var n = t.length, o = null, i = [], s = 0; s < n; ++s) {
                                    if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {
                                        if (!o) {
                                            if (r > 56319) {
                                                (e -= 3) > -1 && i.push(239, 191, 189);
                                                continue;
                                            }

                                            if (s + 1 === n) {
                                                (e -= 3) > -1 && i.push(239, 191, 189);
                                                continue;
                                            }

                                            o = r;
                                            continue;
                                        }

                                        if (r < 56320) {
                                            (e -= 3) > -1 && i.push(239, 191, 189), (o = r);
                                            continue;
                                        }

                                        r = 65536 + (((o - 55296) << 10) | (r - 56320));
                                    } else o && (e -= 3) > -1 && i.push(239, 191, 189);

                                    if (((o = null), r < 128)) {
                                        if ((e -= 1) < 0) break;
                                        i.push(r);
                                    } else if (r < 2048) {
                                        if ((e -= 2) < 0) break;
                                        i.push((r >> 6) | 192, (63 & r) | 128);
                                    } else if (r < 65536) {
                                        if ((e -= 3) < 0) break;
                                        i.push((r >> 12) | 224, ((r >> 6) & 63) | 128, (63 & r) | 128);
                                    } else {
                                        if (!(r < 1114112)) throw new Error('Invalid code point');
                                        if ((e -= 4) < 0) break;
                                        i.push((r >> 18) | 240, ((r >> 12) & 63) | 128, ((r >> 6) & 63) | 128, (63 & r) | 128);
                                    }
                                }

                                return i;
                            }

                            function q(t) {
                                return n.toByteArray(
                                    (function (t) {
                                        if (
                                            (t = (function (t) {
                                                return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, '');
                                            })(t).replace(Y, '')).length < 2
                                        )
                                            return '';

                                        for (; t.length % 4 != 0; ) t += '=';

                                        return t;
                                    })(t)
                                );
                            }

                            function F(t, e, r, n) {
                                for (var o = 0; o < n && !(o + r >= e.length || o >= t.length); ++o) e[o + r] = t[o];

                                return o;
                            }
                        }.call(this, r(0)));
                    },
                    function (t, e, r) {
                        (function (e) {
                            var n = r(20),
                                o = Object.prototype.toString,
                                i = 'function' == typeof Blob || ('undefined' != typeof Blob && '[object BlobConstructor]' === o.call(Blob)),
                                s = 'function' == typeof File || ('undefined' != typeof File && '[object FileConstructor]' === o.call(File));

                            t.exports = function t(r) {
                                if (!r || 'object' != typeof r) return !1;

                                if (n(r)) {
                                    for (var o = 0, a = r.length; o < a; o++) if (t(r[o])) return !0;

                                    return !1;
                                }

                                if (
                                    ('function' == typeof e && e.isBuffer && e.isBuffer(r)) ||
                                    ('function' == typeof ArrayBuffer && r instanceof ArrayBuffer) ||
                                    (i && r instanceof Blob) ||
                                    (s && r instanceof File)
                                )
                                    return !0;
                                if (r.toJSON && 'function' == typeof r.toJSON && 1 === arguments.length) return t(r.toJSON(), !0);

                                for (var u in r) if (Object.prototype.hasOwnProperty.call(r, u) && t(r[u])) return !0;

                                return !1;
                            };
                        }.call(this, r(24).Buffer));
                    },
                    function (t, e) {
                        t.exports =
                            Object.keys ||
                            function (t) {
                                var e = [],
                                    r = Object.prototype.hasOwnProperty;

                                for (var n in t) r.call(t, n) && e.push(n);

                                return e;
                            };
                    },
                    function (t, e, r) {
                        (function (e) {
                            var n,
                                o = r(5),
                                i = r(1),
                                s = r(3),
                                a = r(13),
                                u = r(12),
                                c = r(2)('engine.io-client:websocket'),
                                f = e.WebSocket || e.MozWebSocket;
                            if ('undefined' == typeof window)
                                try {
                                    n = r(11);
                                } catch (t) {
                                    c('require error: ', t);
                                }
                            var h = f;

                            function p(t) {
                                t && t.forceBase64 && (this.supportsBinary = !1),
                                    (this.perMessageDeflate = t.perMessageDeflate),
                                    (this.usingBrowserWebSocket = f && !t.forceNode),
                                    (this.protocols = t.protocols),
                                    this.usingBrowserWebSocket || (h = n),
                                    o.call(this, t);
                            }

                            h || 'undefined' != typeof window || (h = n),
                                (t.exports = p),
                                a(p, o),
                                (p.prototype.name = 'websocket'),
                                (p.prototype.supportsBinary = !0),
                                (p.prototype.doOpen = function () {
                                    if ((c('wesocket do open: ', this.protocols), this.check())) {
                                        var t = this.uri(),
                                            e = this.protocols,
                                            r = {
                                                agent: this.agent,
                                                perMessageDeflate: this.perMessageDeflate
                                            };
                                        (r.pfx = this.pfx),
                                            (r.key = this.key),
                                            (r.passphrase = this.passphrase),
                                            (r.cert = this.cert),
                                            (r.ca = this.ca),
                                            (r.ciphers = this.ciphers),
                                            (r.rejectUnauthorized = this.rejectUnauthorized),
                                            this.extraHeaders && (r.headers = this.extraHeaders),
                                            this.localAddress && (r.localAddress = this.localAddress);

                                        try {
                                            this.ws = this.usingBrowserWebSocket ? (e ? new h(t, e) : new h(t)) : new h(t, e, r);
                                        } catch (t) {
                                            return this.emit('error', t);
                                        }

                                        void 0 === this.ws.binaryType && (this.supportsBinary = !1),
                                            this.ws.supports && this.ws.supports.binary
                                                ? ((this.supportsBinary = !0), (this.ws.binaryType = 'nodebuffer'))
                                                : (this.ws.binaryType = 'arraybuffer'),
                                            this.addEventListeners();
                                    }
                                }),
                                (p.prototype.addEventListeners = function () {
                                    var t = this;
                                    (this.ws.onopen = function () {
                                        t.onOpen();
                                    }),
                                        (this.ws.onclose = function () {
                                            t.onClose();
                                        }),
                                        (this.ws.onmessage = function (e) {
                                            t.onData(e.data);
                                        }),
                                        (this.ws.onerror = function (e) {
                                            t.onError('websocket error', e);
                                        });
                                }),
                                (p.prototype.write = function (t) {
                                    var e = this;
                                    this.writable = !1;

                                    for (var r, n = t.length, o = 0, s = n; o < s; o++)
                                        (r = t[o]),
                                            i.encodePacket(r, e.supportsBinary, function (t) {
                                                try {
                                                    e.ws.send(t);
                                                } catch (t) {}

                                                --n ||
                                                    (e.emit('flush'),
                                                    setTimeout(function () {
                                                        (e.writable = !0), e.emit('drain');
                                                    }, 0));
                                            });
                                }),
                                (p.prototype.onClose = function () {
                                    o.prototype.onClose.call(this);
                                }),
                                (p.prototype.doClose = function () {
                                    void 0 !== this.ws && this.ws.close();
                                }),
                                (p.prototype.uri = function () {
                                    var t = this.query || {},
                                        e = this.secure ? 'wss' : 'ws',
                                        r = '';
                                    return (
                                        this.port && (('wss' === e && 443 !== Number(this.port)) || ('ws' === e && 80 !== Number(this.port))) && (r = ':' + this.port),
                                        this.timestampRequests && (t[this.timestampParam] = u()),
                                        this.supportsBinary || (t.b64 = 1),
                                        (t = s.encode(t)).length && (t = '?' + t),
                                        e + '://' + (-1 !== this.hostname.indexOf(':') ? '[' + this.hostname + ']' : this.hostname) + r + this.path + t
                                    );
                                }),
                                (p.prototype.check = function () {
                                    return !(!h || ('__initialize' in h && this.name === p.prototype.name));
                                });
                        }.call(this, r(0)));
                    },
                    function (t, e, r) {
                        (function (e) {
                            var n = r(6),
                                o = r(4),
                                i = r(2)('engine.io-client:socket'),
                                s = r(8),
                                a = r(1),
                                u = r(7),
                                c = r(3);

                            function f(t, r) {
                                if (!(this instanceof f)) return new f(t, r);
                                (r = r || {}),
                                    t && 'object' == typeof t && ((r = t), (t = null)),
                                    t
                                        ? ((t = u(t)),
                                          (r.hostname = t.host),
                                          (r.secure = 'https' === t.protocol || 'wss' === t.protocol),
                                          (r.port = t.port),
                                          t.query && (r.query = t.query))
                                        : r.host && (r.hostname = u(r.host).host),
                                    (this.secure = null != r.secure ? r.secure : e.location && 'https:' === location.protocol),
                                    r.hostname && !r.port && (r.port = this.secure ? '443' : '80'),
                                    (this.agent = r.agent || !1),
                                    (this.hostname = r.hostname || (e.location ? location.hostname : 'localhost')),
                                    (this.port = r.port || (e.location && location.port ? location.port : this.secure ? 443 : 80)),
                                    (this.query = r.query || {}),
                                    'string' == typeof this.query && (this.query = c.decode(this.query)),
                                    (this.upgrade = !1 !== r.upgrade),
                                    (this.path = (r.path || '/engine.io').replace(/\/$/, '') + '/'),
                                    (this.forceJSONP = !!r.forceJSONP),
                                    (this.jsonp = !1 !== r.jsonp),
                                    (this.forceBase64 = !!r.forceBase64),
                                    (this.enablesXDR = !!r.enablesXDR),
                                    (this.timestampParam = r.timestampParam || 't'),
                                    (this.timestampRequests = r.timestampRequests),
                                    (this.transports = r.transports || ['websocket']),
                                    (this.transportOptions = r.transportOptions || {}),
                                    (this.readyState = ''),
                                    (this.writeBuffer = []),
                                    (this.prevBufferLen = 0),
                                    (this.policyPort = r.policyPort || 843),
                                    (this.rememberUpgrade = r.rememberUpgrade || !1),
                                    (this.binaryType = null),
                                    (this.onlyBinaryUpgrades = r.onlyBinaryUpgrades),
                                    (this.perMessageDeflate = !1 !== r.perMessageDeflate && (r.perMessageDeflate || {})),
                                    !0 === this.perMessageDeflate && (this.perMessageDeflate = {}),
                                    this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024),
                                    (this.pfx = r.pfx || null),
                                    (this.key = r.key || null),
                                    (this.passphrase = r.passphrase || null),
                                    (this.cert = r.cert || null),
                                    (this.ca = r.ca || null),
                                    (this.ciphers = r.ciphers || null),
                                    (this.rejectUnauthorized = void 0 === r.rejectUnauthorized || r.rejectUnauthorized),
                                    (this.forceNode = !!r.forceNode);
                                var n = 'object' == typeof e && e;
                                n.global === n &&
                                    (r.extraHeaders && Object.keys(r.extraHeaders).length > 0 && (this.extraHeaders = r.extraHeaders),
                                    r.localAddress && (this.localAddress = r.localAddress)),
                                    (this.id = null),
                                    (this.upgrades = null),
                                    (this.pingInterval = null),
                                    (this.pingTimeout = null),
                                    (this.pingIntervalTimer = null),
                                    (this.pingTimeoutTimer = null),
                                    this.open();
                            }

                            (t.exports = f),
                                (f.priorWebsocketSuccess = !1),
                                o(f.prototype),
                                (f.protocol = a.protocol),
                                (f.Socket = f),
                                (f.Transport = r(5)),
                                (f.transports = r(6)),
                                (f.parser = r(1)),
                                (f.prototype.createTransport = function (t) {
                                    i('creating transport "%s"', t);

                                    var e = (function (t) {
                                        var e = {};

                                        for (var r in t) t.hasOwnProperty(r) && (e[r] = t[r]);

                                        return e;
                                    })(this.query);

                                    (e.EIO = a.protocol), (e.transport = t);
                                    var r = this.transportOptions[t] || {};
                                    this.id && (e.sid = this.id);
                                    var o = new n[t]({
                                        query: e,
                                        socket: this,
                                        agent: r.agent || this.agent,
                                        hostname: r.hostname || this.hostname,
                                        port: r.port || this.port,
                                        secure: r.secure || this.secure,
                                        path: r.path || this.path,
                                        forceJSONP: r.forceJSONP || this.forceJSONP,
                                        jsonp: r.jsonp || this.jsonp,
                                        forceBase64: r.forceBase64 || this.forceBase64,
                                        enablesXDR: r.enablesXDR || this.enablesXDR,
                                        timestampRequests: r.timestampRequests || this.timestampRequests,
                                        timestampParam: r.timestampParam || this.timestampParam,
                                        policyPort: r.policyPort || this.policyPort,
                                        pfx: r.pfx || this.pfx,
                                        key: r.key || this.key,
                                        passphrase: r.passphrase || this.passphrase,
                                        cert: r.cert || this.cert,
                                        ca: r.ca || this.ca,
                                        ciphers: r.ciphers || this.ciphers,
                                        rejectUnauthorized: r.rejectUnauthorized || this.rejectUnauthorized,
                                        perMessageDeflate: r.perMessageDeflate || this.perMessageDeflate,
                                        extraHeaders: r.extraHeaders || this.extraHeaders,
                                        forceNode: r.forceNode || this.forceNode,
                                        localAddress: r.localAddress || this.localAddress,
                                        requestTimeout: r.requestTimeout || this.requestTimeout,
                                        protocols: r.protocols || void 0
                                    });
                                    return i('transport: ', o), o;
                                }),
                                (f.prototype.open = function () {
                                    var t;
                                    if (this.rememberUpgrade && f.priorWebsocketSuccess && -1 !== this.transports.indexOf('websocket')) t = 'websocket';
                                    else {
                                        if (0 === this.transports.length) {
                                            var e = this;
                                            return void setTimeout(function () {
                                                e.emit('error', 'No transports available');
                                            }, 0);
                                        }

                                        t = this.transports[0];
                                    }
                                    this.readyState = 'opening';

                                    try {
                                        t = this.createTransport(t);
                                    } catch (t) {
                                        return this.transports.shift(), void this.open();
                                    }

                                    t.open(), this.setTransport(t);
                                }),
                                (f.prototype.setTransport = function (t) {
                                    i('setting transport %s', t.name);
                                    var e = this;
                                    this.transport && (i('clearing existing transport %s', this.transport.name), this.transport.removeAllListeners()),
                                        (this.transport = t),
                                        t
                                            .on('drain', function () {
                                                e.onDrain();
                                            })
                                            .on('packet', function (t) {
                                                e.onPacket(t);
                                            })
                                            .on('error', function (t) {
                                                e.onError(t);
                                            })
                                            .on('close', function () {
                                                e.onClose('transport close');
                                            });
                                }),
                                (f.prototype.probe = function (t) {
                                    i('probing transport "%s"', t);
                                    var e = this.createTransport(t, {
                                            probe: 1
                                        }),
                                        r = !1,
                                        n = this;

                                    function o() {
                                        if (n.onlyBinaryUpgrades) {
                                            var o = !this.supportsBinary && n.transport.supportsBinary;
                                            r = r || o;
                                        }

                                        r ||
                                            (i('probe transport "%s" opened', t),
                                            e.send([
                                                {
                                                    type: 'ping',
                                                    data: 'probe'
                                                }
                                            ]),
                                            e.once('packet', function (o) {
                                                if (!r)
                                                    if ('pong' === o.type && 'probe' === o.data) {
                                                        if ((i('probe transport "%s" pong', t), (n.upgrading = !0), n.emit('upgrading', e), !e)) return;
                                                        (f.priorWebsocketSuccess = 'websocket' === e.name),
                                                            i('pausing current transport "%s"', n.transport.name),
                                                            n.transport.pause(function () {
                                                                r ||
                                                                    ('closed' !== n.readyState &&
                                                                        (i('changing transport and sending upgrade packet'),
                                                                        p(),
                                                                        n.setTransport(e),
                                                                        e.send([
                                                                            {
                                                                                type: 'upgrade'
                                                                            }
                                                                        ]),
                                                                        n.emit('upgrade', e),
                                                                        (e = null),
                                                                        (n.upgrading = !1),
                                                                        n.flush()));
                                                            });
                                                    } else {
                                                        i('probe transport "%s" failed', t);
                                                        var s = new Error('probe error');
                                                        (s.transport = e.name), n.emit('upgradeError', s);
                                                    }
                                            }));
                                    }

                                    function s() {
                                        r || ((r = !0), p(), e.close(), (e = null));
                                    }

                                    function a(r) {
                                        var o = new Error('probe error: ' + r);
                                        (o.transport = e.name), s(), i('probe transport "%s" failed because of error: %s', t, r), n.emit('upgradeError', o);
                                    }

                                    function u() {
                                        a('transport closed');
                                    }

                                    function c() {
                                        a('socket closed');
                                    }

                                    function h(t) {
                                        e && t.name !== e.name && (i('"%s" works - aborting "%s"', t.name, e.name), s());
                                    }

                                    function p() {
                                        e.removeListener('open', o),
                                            e.removeListener('error', a),
                                            e.removeListener('close', u),
                                            n.removeListener('close', c),
                                            n.removeListener('upgrading', h);
                                    }

                                    (f.priorWebsocketSuccess = !1),
                                        e.once('open', o),
                                        e.once('error', a),
                                        e.once('close', u),
                                        this.once('close', c),
                                        this.once('upgrading', h),
                                        e.open();
                                }),
                                (f.prototype.onOpen = function () {
                                    if (
                                        (i('socket open'),
                                        (this.readyState = 'open'),
                                        (f.priorWebsocketSuccess = 'websocket' === this.transport.name),
                                        this.emit('open'),
                                        this.flush(),
                                        'open' === this.readyState && this.upgrade && this.transport.pause)
                                    ) {
                                        i('starting upgrade probes');

                                        for (var t = 0, e = this.upgrades.length; t < e; t++) this.probe(this.upgrades[t]);
                                    }
                                }),
                                (f.prototype.onPacket = function (t) {
                                    if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState)
                                        switch ((i('socket receive: type "%s", data "%s"', t.type, t.data), this.emit('packet', t), this.emit('heartbeat'), t.type)) {
                                            case 'open':
                                                this.onHandshake(JSON.parse(t.data));
                                                break;

                                            case 'pong':
                                                this.setPing(), this.emit('pong');
                                                break;

                                            case 'error':
                                                var e = new Error('server error');
                                                (e.code = t.data), this.onError(e);
                                                break;

                                            case 'message':
                                                this.emit('data', t.data), this.emit('message', t.data);
                                        }
                                    else i('packet received with socket readyState "%s"', this.readyState);
                                }),
                                (f.prototype.onHandshake = function (t) {
                                    this.emit('handshake', t),
                                        (this.id = t.sid),
                                        (this.transport.query.sid = t.sid),
                                        (this.upgrades = this.filterUpgrades(t.upgrades)),
                                        (this.pingInterval = t.pingInterval),
                                        (this.pingTimeout = t.pingTimeout),
                                        this.onOpen(),
                                        'closed' !== this.readyState &&
                                            (this.setPing(), this.removeListener('heartbeat', this.onHeartbeat), this.on('heartbeat', this.onHeartbeat));
                                }),
                                (f.prototype.onHeartbeat = function (t) {
                                    clearTimeout(this.pingTimeoutTimer);
                                    var e = this;
                                    e.pingTimeoutTimer = setTimeout(function () {
                                        'closed' !== e.readyState && e.onClose('ping timeout');
                                    }, t || e.pingInterval + e.pingTimeout);
                                }),
                                (f.prototype.setPing = function () {
                                    var t = this;
                                    clearTimeout(t.pingIntervalTimer),
                                        (t.pingIntervalTimer = setTimeout(function () {
                                            i('writing ping packet - expecting pong within %sms', t.pingTimeout), t.ping(), t.onHeartbeat(t.pingTimeout);
                                        }, t.pingInterval));
                                }),
                                (f.prototype.ping = function () {
                                    var t = this;
                                    this.sendPacket('ping', function () {
                                        t.emit('ping');
                                    });
                                }),
                                (f.prototype.onDrain = function () {
                                    this.writeBuffer.splice(0, this.prevBufferLen), (this.prevBufferLen = 0), 0 === this.writeBuffer.length ? this.emit('drain') : this.flush();
                                }),
                                (f.prototype.flush = function () {
                                    'closed' !== this.readyState &&
                                        this.transport.writable &&
                                        !this.upgrading &&
                                        this.writeBuffer.length &&
                                        (i('flushing %d packets in socket', this.writeBuffer.length),
                                        this.transport.send(this.writeBuffer),
                                        (this.prevBufferLen = this.writeBuffer.length),
                                        this.emit('flush'));
                                }),
                                (f.prototype.write = f.prototype.send =
                                    function (t, e, r) {
                                        return this.sendPacket('message', t, e, r), this;
                                    }),
                                (f.prototype.sendPacket = function (t, e, r, n) {
                                    if (
                                        ('function' == typeof e && ((n = e), (e = void 0)),
                                        'function' == typeof r && ((n = r), (r = null)),
                                        'closing' !== this.readyState && 'closed' !== this.readyState)
                                    ) {
                                        (r = r || {}).compress = !1 !== r.compress;
                                        var o = {
                                            type: t,
                                            data: e,
                                            options: r
                                        };
                                        this.emit('packetCreate', o), this.writeBuffer.push(o), n && this.once('flush', n), this.flush();
                                    }
                                }),
                                (f.prototype.close = function () {
                                    if ('opening' === this.readyState || 'open' === this.readyState) {
                                        this.readyState = 'closing';
                                        var t = this;
                                        this.writeBuffer.length
                                            ? this.once('drain', function () {
                                                  this.upgrading ? n() : e();
                                              })
                                            : this.upgrading
                                            ? n()
                                            : e();
                                    }

                                    function e() {
                                        t.onClose('forced close'), i('socket closing - telling transport to close'), t.transport.close();
                                    }

                                    function r() {
                                        t.removeListener('upgrade', r), t.removeListener('upgradeError', r), e();
                                    }

                                    function n() {
                                        t.once('upgrade', r), t.once('upgradeError', r);
                                    }

                                    return this;
                                }),
                                (f.prototype.onError = function (t) {
                                    i('socket error %j', t), (f.priorWebsocketSuccess = !1), this.emit('error', t), this.onClose('transport error', t);
                                }),
                                (f.prototype.onClose = function (t, e) {
                                    ('opening' !== this.readyState && 'open' !== this.readyState && 'closing' !== this.readyState) ||
                                        (i('socket close with reason: "%s"', t),
                                        clearTimeout(this.pingIntervalTimer),
                                        clearTimeout(this.pingTimeoutTimer),
                                        this.transport.removeAllListeners('close'),
                                        this.transport.close(),
                                        this.transport.removeAllListeners(),
                                        (this.readyState = 'closed'),
                                        (this.id = null),
                                        this.emit('close', t, e),
                                        (this.writeBuffer = []),
                                        (this.prevBufferLen = 0));
                                }),
                                (f.prototype.filterUpgrades = function (t) {
                                    for (var e = [], r = 0, n = t.length; r < n; r++) ~s(this.transports, t[r]) && e.push(t[r]);

                                    return e;
                                });
                        }.call(this, r(0)));
                    },
                    function (t, e, r) {
                        (t.exports = r(28)), (t.exports.parser = r(1));
                    }
                ]));
        },
        function (t, e, r) {
            (function (t) {
                var n = r(2),
                    o = r(9),
                    i = Object.prototype.toString,
                    s = 'function' == typeof t.Blob || '[object BlobConstructor]' === i.call(t.Blob),
                    a = 'function' == typeof t.File || '[object FileConstructor]' === i.call(t.File);
                (e.deconstructPacket = function (t) {
                    var e = [],
                        r = t.data,
                        i = t;
                    return (
                        (i.data = (function t(e, r) {
                            if (!e) return e;

                            if (o(e)) {
                                var i = {
                                    _placeholder: !0,
                                    num: r.length
                                };
                                return r.push(e), i;
                            }

                            if (n(e)) {
                                for (var s = new Array(e.length), a = 0; a < e.length; a++) s[a] = t(e[a], r);

                                return s;
                            }

                            if ('object' == typeof e && !(e instanceof Date)) {
                                var s = {};

                                for (var u in e) s[u] = t(e[u], r);

                                return s;
                            }

                            return e;
                        })(r, e)),
                        (i.attachments = e.length),
                        {
                            packet: i,
                            buffers: e
                        }
                    );
                }),
                    (e.reconstructPacket = function (t, e) {
                        return (
                            (t.data = (function t(e, r) {
                                if (!e) return e;
                                if (e && e._placeholder) return r[e.num];
                                if (n(e)) for (var o = 0; o < e.length; o++) e[o] = t(e[o], r);
                                else if ('object' == typeof e) for (var i in e) e[i] = t(e[i], r);
                                return e;
                            })(t.data, e)),
                            (t.attachments = void 0),
                            t
                        );
                    }),
                    (e.removeBlobs = function (t, e) {
                        var r = 0,
                            i = t;
                        !(function t(u, c, f) {
                            if (!u) return u;

                            if ((s && u instanceof Blob) || (a && u instanceof File)) {
                                r++;
                                var h = new FileReader();
                                (h.onload = function () {
                                    f ? (f[c] = this.result) : (i = this.result), --r || e(i);
                                }),
                                    h.readAsArrayBuffer(u);
                            } else if (n(u)) for (var p = 0; p < u.length; p++) t(u[p], p, u);
                            else if ('object' == typeof u && !o(u)) for (var l in u) t(u[l], l, u);
                        })(i),
                            r || e(i);
                    });
            }.call(this, r(1)));
        },
        function (t, e) {
            var r =
                    /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
                n = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'];

            t.exports = function (t) {
                var e = t,
                    o = t.indexOf('['),
                    i = t.indexOf(']');
                -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, ';') + t.substring(i, t.length));

                for (var s = r.exec(t || ''), a = {}, u = 14; u--; ) a[n[u]] = s[u] || '';

                return (
                    -1 != o &&
                        -1 != i &&
                        ((a.source = e),
                        (a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ':')),
                        (a.authority = a.authority.replace('[', '').replace(']', '').replace(/;/g, ':')),
                        (a.ipv6uri = !0)),
                    a
                );
            };
        },
        function (t, e, r) {
            (function (e) {
                var n = r(21),
                    o = r(0)('socket.io-client:url');

                t.exports = function (t, r) {
                    var i = t;
                    (r = r || e.location), null == t && (t = r.protocol + '//' + r.host);
                    'string' == typeof t &&
                        ('/' === t.charAt(0) && (t = '/' === t.charAt(1) ? r.protocol + t : r.host + t),
                        /^(https?|wss?):\/\//.test(t) || (o('protocol-less url %s', t), (t = void 0 !== r ? r.protocol + '//' + t : 'https://' + t)),
                        o('parse %s', t),
                        (i = n(t)));
                    i.port || (/^(http|ws)$/.test(i.protocol) ? (i.port = '80') : /^(http|ws)s$/.test(i.protocol) && (i.port = '443'));
                    i.path = i.path || '/';
                    var s = -1 !== i.host.indexOf(':') ? '[' + i.host + ']' : i.host;
                    return (i.id = i.protocol + '://' + s + ':' + i.port), (i.href = i.protocol + '://' + s + (r && r.port === i.port ? '' : ':' + i.port)), i;
                };
            }.call(this, r(1)));
        },
        function (t, e, r) {
            var n = r(22),
                o = r(4),
                i = r(8),
                s = r(0)('socket.io-client');
            t.exports = e = u;
            var a = (e.managers = {});

            function u(t, e) {
                'object' == typeof t && ((e = t), (t = void 0)), (e = e || {});
                var r,
                    o = n(t),
                    u = o.source,
                    c = o.id,
                    f = o.path,
                    h = a[c] && f in a[c].nsps;
                return (
                    e.forceNew || e['force new connection'] || !1 === e.multiplex || h
                        ? (s('ignoring socket cache for %s', u), (r = i(u, e)))
                        : (a[c] || (s('new io instance for %s', u), (a[c] = i(u, e))), (r = a[c])),
                    o.query && !e.query && (e.query = o.query),
                    r.socket(o.path, e)
                );
            }

            (e.protocol = o.protocol), (e.connect = u), (e.Manager = r(8)), (e.Socket = r(7));
        },
        function (t, e, r) {
            t.exports = r(23);
        }
    ]);
});
